Compare commits

...

96 Commits

Author SHA1 Message Date
Owen Taylor c577abf769 Released 2.0.3.
Thu May 23 17:19:16 2002  Owen Taylor  <otaylor@redhat.com>

        * Released 2.0.3.

        * gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
        tooltips for menu items with submenus .. they still
        don't really work properly.

        * gtk/gtkwindow.c (gtk_window_move_resize): Clear
        initial_pos_set even if it only causes a move, not
        a resize as well.

        * configure.in: GTK+-2.0.3, interface age, binary age 3.

        * NEWS: Updated.
2002-05-23 22:01:51 +00:00
Jonathan Blandford 4794f2b309 revert last change until I am more sure of it 2002-05-23 15:31:41 +00:00
Jonathan Blandford 6fe89cc83a Check the parentage of a newly inserted node.
Thu May 23 11:08:09 2002  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtktreeview.c (gtk_tree_view_row_inserted): Check the
	parentage of a newly inserted node.
2002-05-23 15:15:37 +00:00
Kjartan Maraas edf587b5d0 Update 2002-05-23 10:28:01 +00:00
Tor Lillqvist cef800524a Use correct path to the loaders and immodules directories
2002-05-23  Tor Lillqvist  <tml@iki.fi>

	* gtk-zip.sh.in: Use correct path to the loaders and immodules
	directories (GTK_BINARY_VERSION, not GTK_VERSION).
2002-05-22 21:01:18 +00:00
Federico Mena Quintero 44fb34e048 Make the top of the ChangeLog match the one in HEAD - Federico 2002-05-22 20:35:00 +00:00
Federico Mena Quintero fa5b3494ce Ahem, take the rowstride into account!!! Fixes #82515.
2002-05-22  Federico Mena Quintero  <federico@ximian.com>

	* io-xpm.c (pixbuf_create_from_xpm): Ahem, take the rowstride into
	account!!!  Fixes #82515.

	[This bug is not present in the GNOME 1.4 branch as its XPM loader
	does not use gdk_pixbuf_new(); rather it malloc()s a buffer with
	no row padding and then uses gdk_pixbuf_new_from_data() on it.]

	[IMPORTANT: The comment above is to make my life easier when
	merging stuff across branches.  If you make changes to gdk-pixbuf
	in either branch, please include a comment in the ChangeLog that
	indicates whether this should be merged into the other branch.
	Thanks!]
2002-05-22 20:31:50 +00:00
Federico Mena Quintero 980b21ed3a Ahem, take the rowstride into account!!! Fixes #82515.
2002-05-22  Federico Mena Quintero  <federico@ximian.com>

        * io-xpm.c (pixbuf_create_from_xpm): Ahem, take the rowstride into
        account!!!  Fixes #82515.

        [This bug is not present in the GNOME 1.4 branch as its XPM loader
        does not use gdk_pixbuf_new(); rather it malloc()s a buffer with
        no row padding and then uses gdk_pixbuf_new_from_data() on it.]

        [IMPORTANT: The comment above is to make my life easier when
        merging stuff across branches.  If you make changes to gdk-pixbuf
        in either branch, please include a comment in the ChangeLog that
        indicates whether this should be merged into the other branch.
        Thanks!]
2002-05-22 20:28:15 +00:00
Owen Taylor 565c6e3ba5 Require autoconf-2.52 explicitely, since otherwise Debian will process it
Wed May 22 16:12:38 2002  Owen Taylor  <otaylor@redhat.com>

        * configure.in: Require autoconf-2.52 explicitely,
        since otherwise Debian will process it with 2.13 (ugh!).
2002-05-22 20:16:48 +00:00
Tor Lillqvist de4153065e Use GTK_BINARY_VERSION (and not GTK_VERSION) in the path to the loaders on
2002-05-22  Tor Lillqvist  <tml@iki.fi>

	* gdk-pixbuf-io.c (get_libdir): Use GTK_BINARY_VERSION (and not
	GTK_VERSION) in the path to the loaders on Win32, too.

	* Makefile.am: Pass GTK_BINARY_VERSION.
2002-05-22 19:34:03 +00:00
Jonathan Blandford a7cef089a8 remove GTK_RESIZE_QUEUE setting.
Wed May 22 12:29:20 2002  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
	GTK_RESIZE_QUEUE setting.
2002-05-22 16:34:49 +00:00
Owen Taylor c2a0b5322c Fix missing dereference. (HideToshi Tajima)
Tue May 21 16:46:15 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
        Fix missing dereference. (HideToshi Tajima)
2002-05-21 20:51:30 +00:00
Owen Taylor 1b4ae4ff25 Conditionalize GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem reported
Tue May 21 15:33:32 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwindow.c (gtk_window_show): Conditionalize
        GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
        reported by Sven Neumann)
2002-05-21 19:33:10 +00:00
George Lebl 0d4e66328c update a few strings, that is at least the ones I see the most so that
Tue May 21 10:13:27 2002  George Lebl <jirka@5z.com>

	* cs.po: update a few strings, that is at least the ones I see
	  the most so that things speak at least somewhat czech to me
2002-05-21 17:03:47 +00:00
Owen Taylor 91ba6c2dc6 Patch from HideToshi Tajima to handle Xlib internal connections. (#76681)
Mon May 20 15:02:21 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
        to handle Xlib internal connections. (#76681)
2002-05-20 19:04:24 +00:00
Owen Taylor a57801b074 on May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
        flag to fix problem where with menu items with
        submenus, tooltips were getting stuck. (Effectively
        disables tooltips for menu items with submenus.)
        (Bug #75961, Soeren Sandmann)

        * tests/testgtk.c: Set a tooltip on a menu item
        with a submenu.
2002-05-20 17:06:59 +00:00
Owen Taylor c1b5a2d0ef Undo an accidental revert of fixes of May 16. (Caught by Padraig O'Briain)
Mon May 20 11:47:59 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkplug.c: Undo an accidental revert of
        fixes of May 16. (Caught by Padraig O'Briain)
2002-05-20 15:52:08 +00:00
Owen Taylor 785183c7fb Fix bug where size request for text cells was being overwritten. (#82264,
Mon May 20 11:38:21 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkctree.c (cell_size_request): Fix bug where
        size request for text cells was being overwritten.
        (#82264, Graham Swallow.)
2002-05-20 15:42:43 +00:00
Chyla Zbigniew c2929809ff Updated Polish translation by GNOME PL Team <translators@gnome.pl> 2002-05-19 09:03:35 +00:00
Vlad Harchev 840d2ef409 ru.po: updated russian translation from Dmitry G. Mastrukov 2002-05-19 03:57:52 +00:00
Christian Rose a9274b2f0c Updated Swedish translation.
2002-05-19  Christian Rose  <menthos@menthos.com>

	* sv.po: Updated Swedish translation.
2002-05-19 02:39:42 +00:00
Matthias Clasen 32931e7d08 Check for endianness.
* configure.in: Check for endianness.

	* io-tiff.c (tiff_image_parse): fix packing order on bigendian
	systems.  (#81702)
2002-05-18 14:54:37 +00:00
Owen Taylor 410b70f907 Only optimize out the full configure handling if we got a gratuitous
Thu May 16 19:49:24 2002  Owen Taylor  <otaylor@redhat.com>
        * gtk/gtkwindow.c (gtk_window_configure_event): Only
        optimize out the full configure handling if we got
        a gratuitous configure event(configure_request_count == 0)
        and the size didn't change.

        * gtk/gtkwindow.c (gtk_window_move_resize): Use
        g_message(), not g_print() for debug spew.

        * gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
        the old and new focus widgets for the scope of
        the function.

        * gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
        bits of old code.

        * gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
2002-05-17 21:44:37 +00:00
Owen Taylor 0aa1bd5e97 Protect against reentrancy problems by emitting ::preedit_changed at the
Fri May 17 14:40:24 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
        Protect against reentrancy problems by emitting
        ::preedit_changed at the end, fixing input context
        leak. (Yao Zhang)

        * modules/input/gtkimcontextxim.c (status_window_free):
        Patch from Federico Mena Quintero to fix problem where
        references to IMContextXIM were kept around after
        module was unloaded.

        * gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
        proxy window.
2002-05-17 19:28:35 +00:00
Kjartan Maraas d7542b9af8 Update 2002-05-17 19:25:37 +00:00
Owen Taylor 859145de52 Fix a missing unref in the local/passive case. (#82067, Michael Meeks)
Fri May 17 13:56:23 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
        unref in the local/passive case. (#82067, Michael
        Meeks)

        * gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
        reference leak on the plug window.

        * tests/testsocket.c (add_child): Fix memory leak.

        * gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
        the proxy window.
2002-05-17 18:15:19 +00:00
Pablo Saratxaga 5d2db8f012 Updated Catalan, Vietnamese and Walloon file 2002-05-17 10:07:22 +00:00
Owen Taylor 1fa83a74f5 Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkwindow.c (gtk_window_show): Disable the focus-some-one code for GtkPlug descendants. * gtk/gtkplug.c (gtk_plug_focus_event): Eat focus-in/out events since they can be generated by keyboard grabs, but are spurious for an embeddded widget. (#79196, Padraig O'Briain) * gtk/gtksocket.c (gtk_socket_size_request): Only pay attention to the minimum size hints, and changes to that ... ignore the default size. * gtk/gtksocket.c (gtk_socket_send_configure_event): Pass in root-window relative coordinates as per the ICCCM. * gtk/gtksocket.c (gtk_socket_size_allocate): Send as many synthetic configures as necessary to make up for ConfigureRequest events we got. (#78799, Dave Camp.) 2002-05-16 23:37:30 +00:00
Kristian Rietveld cb9aff42c7 set the prev of the next node correctly, so we don't corrupt the list and
Thu May 16 23:59:56 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
        of the next node correctly, so we don't corrupt the list and cause
        bad things. (fixes #71374)
2002-05-16 22:15:30 +00:00
Jonathan Blandford 1124ea7c72 include missing #ifdef G_ENABLE_DEBUG
Thu May 16 17:29:08 2002  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
2002-05-16 21:35:58 +00:00
Owen Taylor ec80b47977 Fix typo in earlier patch.
Thu May 16 15:44:15 2002  Owen Taylor  <otaylor@redhat.com>

        * demos/gtk-demo/editable_cells.c (cell_edited): Fix
	typo in	earlier	patch.
2002-05-16 19:44:17 +00:00
Owen Taylor 1fd687f7c2 Don't filter control-shift+[non-hex]. (#80252, reported by Nalin
Tue May  7 15:50:51 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
        Don't filter control-shift+[non-hex].
        (#80252, reported by Nalin Dahyabhai)
2002-05-16 19:41:09 +00:00
Owen Taylor f1fa35441e Patch from Matthias Clasen to fix some typos (#77246)
Thu May 16 15:17:30 2002  Owen Taylor  <otaylor@redhat.com>

        * pixops/pixops.c: Patch from Matthias Clasen to fix some typos
        (#77246)
2002-05-16 19:18:14 +00:00
Owen Taylor d7b7242847 Fixes for #78258
Thu May 16 14:51:14 2002  Owen Taylor  <otaylor@redhat.com>

        Fixes for #78258

        * gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
        Fix some 64-bit warning problems. (Patch from Matthias
        Clasen.)

        * gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
        a bunch of debug code with G_ENABLE_DEBUG.

        * configure.in demos/gtk-demo/main.c: Replace
        #ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
2002-05-16 19:12:01 +00:00
Owen Taylor a2e485757c Fix a missed check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:56:38 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
        check for division by zero. (#77820, Gareth Pearce)
2002-05-16 16:57:07 +00:00
Owen Taylor 2c79e71d98 gdk_event_put() copies the event and setting name, so we don't have to
Thu May 16 12:50:13 2002  Owen Taylor  <otaylor@redhat.com>

	* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
	gdk_event_put() copies the event and setting name,
	so we don't have to strdup() it here. (Fix from
	Michael Meeks, #81953)
2002-05-16 16:53:37 +00:00
Ettore Perazzoli c2d9124553 If the menu is scrolled down or up, and some of the widget area is empty,
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange.  Fixes
#72695.
2002-05-16 13:49:04 +00:00
Owen Taylor 806bb88530 Don't call gdk_pointer_grab() to change the cursor if we've already
Wed May 15 18:15:45 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
        call gdk_pointer_grab() to change the cursor if we've
        already ungrabbed on button release / escape.
        (#80420, Dave Camp)
2002-05-15 22:26:45 +00:00
Owen Taylor ea696a2362 Special case menu items to pop down on motion. (#75961)
Wed May 15 17:12:50 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtktooltips.c: Special case menu items to
        pop down on motion. (#75961)

        * tests/testgtk.c (create_item_factory): Add tooltips
        to the File menu.

        * gtk/gtkentry.c (update_im_cursor_location): Fix
        cursor locations passed to the IM context.
        (#80027, Yao Zhang)
2002-05-15 21:47:08 +00:00
Owen Taylor 87234fd57b Update from contents of size entry on focus out. (#76493, Lauris
Wed May 15 16:52:57 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfontsel.c: Update from contents of size entry
        on focus out. (#76493, Lauris Kaplinski)

        * gtk/gtkclipboard.c (selection_get_cb): Fix backwads
        info/time arguments. (#80226)
2002-05-15 20:54:42 +00:00
Owen Taylor 31ec94faa5 If not building libpng, don't rebuild gtkstockpixbufs.h (#81819, Bill
Wed May 15 11:13:19 2002  Owen Taylor  <otaylor@redhat.com>

        * configure.in gtk/stock-icons/Makefile.am: If not
        building libpng, don't rebuild gtkstockpixbufs.h
        (#81819, Bill Janssen)
2002-05-15 15:31:53 +00:00
Jacob Berkman 2dcfebc67f run perl on the file, since it's not executable
2002-05-15  Jacob Berkman  <jacob@ximian.com>

	* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
	executable
2002-05-15 04:18:06 +00:00
Owen Taylor d81b18a210 Subsitute in @PERL@ instead of hardcoded /usr/bin/perl. (#78355, Gareth
Tue May 14 19:53:15 2002  Owen Taylor  <otaylor@redhat.com>

        * demos/gtk-demo/geninclude.pl.in configure.in:
        Subsitute in @PERL@ instead of hardcoded
        /usr/bin/perl. (#78355, Gareth Pearce. Fix based
        on patch from Matthias Clasen)

        * gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
        instead of makeenums.pl.

        * gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
        get gdkenumtypes.h built first.
2002-05-14 23:57:23 +00:00
Owen Taylor 185087e553 Remove the result file on error. (#79929, David Highley)
Tue May 14 18:41:58 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
        Remove the result file on error. (#79929, David
        Highley)

        * gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
        If the menu is currently active, cancel it before
        setting the new menu. (#79162, Jonathan Blandford.)
2002-05-14 22:44:30 +00:00
Owen Taylor 26f74e40f6 Fix prepending at the start of the list. (#56349, Thomas Leonard.)
Tue May 14 18:13:10 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
        prepending at the start of the list. (#56349,
        Thomas Leonard.)

        * gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
        explicit casts to GSignalMatchType for C++ compatibility.
        (#77601)
2002-05-14 22:16:01 +00:00
Owen Taylor ff76bf8ba7 Fix frame_right/frame_top screwup. (Detlef Reichl, #78111)
Tue May 14 18:02:37 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwindow.c (gtk_window_realize): Fix
        frame_right/frame_top screwup. (Detlef Reichl,
        #78111)

        * gtk/Makefile.am (install-data-local): Use
        $(INSTALL_DATA) not $(INSTALL) when installing
        theme files. (#77094, Ben Liblit)
2002-05-14 22:04:22 +00:00
Owen Taylor 099100a9d3 Fix format of selection data to be 8 rather than GTK_TYPE_POINTER.
Tue May 14 17:30:57 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkctree.c gtk/gtkclist.c: Fix format of
        selection data to be 8 rather than GTK_TYPE_POINTER.
        (#79751, James Henstridge)

        * gtk/gtkmenu.c (gtk_menu_key_press): Call
        gtk_accelerator_valid() with cleaned up
        accel_key/accel_mods, not the raw values from
        the event. (#80513, Havoc Pennington.)

        * gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
        some dead code that set the tearoff window not
        resizable and removed decorations. (#80235)
2002-05-14 21:36:16 +00:00
Owen Taylor 94d05dfaf8 Set the width of the layout to the actual wrap width (our requisition) not
Tue May 14 16:44:09 2002  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtklabel.c (gtk_label_ensure_layout): Set
        the width of the layout to the actual wrap width
        (our requisition) not the width we set when calculating
        the width. This results in the lines being justified
        within the correct area. (#79157, Anders Carlsson)

        * gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
        registered parameter types of "accel_activate" and
        "accel_changed" signals. (Patch from Murray Cumming, #78798)

        * gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
        binary-version and type to correspond to the
        current ordering in _gtk_get_module_path.
        (#78746, Sergey Kuzminov)

        * gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
        pointing to the GTK_PATH documentation.

        * gtk/Makefile.am (uninstall-local): Delete
        key themes as well. (#81286, Kristian Rietveld.)
2002-05-14 20:52:59 +00:00
Pauli Virtanen f10a6beefc Updated Finnish translation.
2002-05-14  Pauli Virtanen <pauli.virtanen@hut.fi>

	* fi.po: Updated Finnish translation.
2002-05-14 20:51:07 +00:00
Owen Taylor fa7fc23f44 Try adding a #ifndef/#define for XkbKeySymEntry to make up for OSF broken
Tue May 14 15:09:33 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
        for XkbKeySymEntry to make up for OSF broken
        XKB extension. (#77819, Gareth Pearce)

        * gtk/gtklayout.c: Clamp the upper values in response
        to ::size-allocate if necessary. (#81290, Christophe Saout)

        * gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
        combo being destroyed before idle fires.
        (#81396, Timo Sirainen)
2002-05-14 19:12:51 +00:00
Kristian Rietveld f34a1f4807 PACK_END cells support CELL_ACTION_EVENT too now ...
Mon May 13 23:19:20 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
        PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-13 21:18:31 +00:00
Stanislav Visnovsky 8b4829abab Updated Slovak translation.
2002-05-11  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>

	* sk.po: Updated Slovak translation.
2002-05-11 14:18:43 +00:00
Ole Laursen f21dfb358d Updated Danish translation.
2002-05-11  Ole Laursen  <olau@hardworking.dk>

	* da.po: Updated Danish translation.
2002-05-11 11:02:47 +00:00
Daniel Elstner 5a1a08f160 #define INITIALIZE_TREE_ITER(), which zeroes out all GtkTreeIter fields.
2002-05-10  Daniel Elstner  <daniel.elstner@gmx.net>

* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(), which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
2002-05-10 21:48:20 +00:00
Chyla Zbigniew 0cc2d916f1 Updated Polish translation by GNOME PL Team <translators@gnome.pl> 2002-05-10 12:39:30 +00:00
Kristian Rietveld dbe2343a7d fixup comment, so it doesn't screw the docs.
Thu May  9 23:33:32 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
        so it doesn't screw the docs.
2002-05-09 21:27:18 +00:00
Michael Natterer bd118b7212 fixed yesterdays fix for cross compiling: simply check the variable
2002-05-08  Michael Natterer  <mitch@gimp.org>

	* configure.in: fixed yesterdays fix for cross compiling: simply
	check the variable "cross_compiling" which gets set by autoconf.
2002-05-08 15:29:10 +00:00
Owen Taylor 175116ac7d Check for selection_atom, not property name atom.
Tue May  7 18:36:03 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/xsettings-client.c (xsettings_client_process_event):
        Check for selection_atom, not property name atom.
2002-05-07 22:45:28 +00:00
Michael Natterer 12cf52e468 added a new conditional CROSS_COMPILING which indicates ($build != $host).
2002-05-07  Michael Natterer  <mitch@gimp.org>

	* configure.in: added a new conditional CROSS_COMPILING which
	indicates ($build != $host). If it is set, look for
	gdk-pixbuf-csource in PATH. Error out if it was not found.

	* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
	configure time if CROSS_COMPILING is set, use the one which was
	just built otherwise.
2002-05-07 15:57:51 +00:00
Anders Carlsson c5162fa6e8 Only process manager events with the correct atom.
2002-05-07  Anders Carlsson  <andersca@gnu.org>

	* gdk/x11/xsettings-client.c (xsettings_client_process_event):
	Only process manager events with the correct atom.
2002-05-07 14:51:18 +00:00
Michael Natterer 8aa2e2453e build the static pixbuf loaders conditionally like the dynamic ones so
2002-05-07  Michael Natterer  <mitch@gimp.org>

	* gdk-pixbuf/Makefile.am: build the static pixbuf loaders
	conditionally like the dynamic ones so --without-lib<foo> is
	honored when building with --disable-modules. (#66867)
2002-05-07 12:59:01 +00:00
Kjartan Maraas 2488bbf9fc Updated Norwegian (bokml) translation.
2002-05-07  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokml) translation.
2002-05-07 10:38:24 +00:00
Kristian Rietveld 4dd906e7a7 Merge TreeView fixes from HEAD:
Tue May  7 00:50:20 2002  Kristian Rietveld  <kris@gtk.org>

        Merge TreeView fixes from HEAD:

        (May  6):
        * gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
        func on current node before the child nodes.

        * gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
        unset user_data before destroying the window. (fixes #80065).
2002-05-06 22:44:15 +00:00
Kristian Rietveld 4e3c34eab6 add neighbor size hack to align editable widget.
Tue May  7 00:18:45 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
        size hack to align editable widget.

        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
        here instead of g_new (this triggered some bad crash),
        (gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-06 22:32:24 +00:00
Matthias Clasen 2083f3e262 Always select for property notify for maintaining window state.
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
	(gdk_window_set_events): Always select for property notify for
	maintaining window state.

	* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
	property notifys if they were selected by gdk_window_set_events.
2002-05-06 22:06:10 +00:00
Owen Taylor c400e38f98 Add ChangeLog.pre-2-0 (#78641)
Mon May  6 11:48:08 2002  Owen Taylor  <otaylor@redhat.com>

        * Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)

        * m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
        compiling "what went wrong" test case. (#79329)

        * m4macros/gtk-2.0.m4: Remove reference to editing
        pkg-config script. (From Jim Gettys)
2002-05-06 18:06:11 +00:00
Changwoo Ryu b2e2fe6ea3 Updated Korean translation.
* ko.po: Updated Korean translation.
2002-05-06 14:26:47 +00:00
Christophe Fergeau 115418d968 Fixed 2 strings 2002-05-04 23:36:01 +00:00
Tuomas Kuosmanen 64fb36c3d8 These have a proper alpha channel thus they dont look jaggy. /tig 2002-05-03 08:46:59 +00:00
Matthias Clasen 2255a7225d Typo fix.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
2002-05-02 19:16:25 +00:00
Matthias Clasen f4dc453e09 Correct the composite_child blurb.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
	composite_child blurb.

	* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs.  (#73093)
2002-05-02 19:09:34 +00:00
Vincent van Adrighem a8749b2614 Added a few lines about how to use gettext to convert betweeen encodings.
2002-05-02 Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>
* README.translators: Added a few lines about how to use
	gettext to convert betweeen encodings.
2002-05-02 07:32:05 +00:00
Vincent van Adrighem 1c92d4b28d Updated Dutch translation (Tino Meinen).
2002-05-02 Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>
* nl.po: Updated Dutch translation (Tino Meinen).
2002-05-02 07:22:25 +00:00
Chyla Zbigniew 15c38b93e2 Updated Polish translation by GNOME PL Team <translators@gnome.pl> 2002-05-01 10:42:29 +00:00
Havoc Pennington 1fc3556064 use gtk_text_layout_invalidate_cache instead of cut-and-paste
2002-04-30  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
	gtk_text_layout_invalidate_cache instead of cut-and-paste
	(gtk_text_layout_real_invalidate): always invalidate cache, even
	if the line has no stored line data. #78573

	* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
	gtk_text_view_ensure_layout, #77388
	(gtk_text_view_get_iter_at_location): ditto
	(gtk_text_view_get_line_yrange): ditto
	(gtk_text_view_get_line_at_y): ditto
2002-04-30 20:51:26 +00:00
Havoc Pennington 31b514d831 assign something to "prev" so that removing tag info succeeds. Part of
2002-04-30  Havoc Pennington  <hp@redhat.com>

	* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
	something to "prev" so that removing tag info succeeds.
	Part of #77301

	* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
	unrefs the tag table first, so that the btree is in a consistent
	state when we're removing tags from it.

	* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
	all tags in the tag table out of the buffer. #77301
2002-04-30 15:53:54 +00:00
Alex Larsson 752742d044 Use tmp also if foreground is set.
2002-04-29  Alex Larsson  <alexl@redhat.com>

	* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
	Use tmp also if foreground is set.
2002-04-29 23:34:08 +00:00
Andraz Tori e49d754fdc Updated Slovenian translation 2002-04-29 23:32:06 +00:00
Kjartan Maraas 22f7b3ee23 Updated Norwegian (bokml) translation.
2002-04-29  Kjartan Maraas  <kmaraas@gnome.org>

	* no.po: Updated Norwegian (bokml) translation.
2002-04-29 13:31:26 +00:00
Jonathan Blandford a704364549 Fix so that you can set a new sort func.
Sun Apr 28 22:43:55 2002  Jonathan Blandford  <jrb@gnome.org>

	* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
	so that you can set a new sort func.
2002-04-29 03:02:56 +00:00
Matthias Clasen 21c7e08b21 Avoid a possible division by zero. (#77820)
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
	division by zero.  (#77820)
2002-04-27 22:31:47 +00:00
Kristian Rietveld 2d509b1d84 Merge TreeView fixes from HEAD:
Sat Apr 27 15:48:49 2002  Kristian Rietveld  <kris@gtk.org>

        Merge TreeView fixes from HEAD:

        (Apr 26):
        * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
        deleted node was "below" this path, then do not unref all nodes
        between the deleted parent and the node this rowref is pointing too
        (see added comment in gtk_tree_row_ref_deleted_callback),
        (fixes #77977)
2002-04-27 13:43:44 +00:00
Simos Xenitellis 5ef9c5a5bf Updated Greek translation 2002-04-27 13:24:58 +00:00
Sven Neumann 77d170539a tests/testtreecolumns.c quit the main loop when the window is destroyed.
2002-04-26  Sven Neumann  <sven@gimp.org>

	* tests/testtreecolumns.c
	* tests/testtreeview.c: quit the main loop when the window is
	destroyed. Removed compiler warnings about wrong format in printf().
2002-04-26 16:59:00 +00:00
Kristian Rietveld 9255c12c87 Merge TreeView fixes from HEAD up to Apr 26:
Fri Apr 26 00:00:00 2002  Kristian Rietveld  <kris@gtk.org>

        Merge TreeView fixes from HEAD up to Apr 26:

        (Apr 25):
        * gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
        resort if we're already in 'unsorted' state, and update the docs

        * gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
        dialog not scroll horizontally (prolly fixes #74806).

        (Also from Apr 25, fixes #74206):
        * gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells

        * gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
        (_gtk_tree_view_column_get_editable_cell): remove a space which made
        the code look ugly
        (_gtk_tree_view_column_count_special_cells): new function,
        (gtk_tree_view_column_cell_process_action): if there's only one
        activatable cell, the whole column will activate that renderer.

        (Apr 24):
        * gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
        ->priv->edited_column to NULL. Pleas read the comment in this
        function for an explanation (fixes #79632).
2002-04-25 22:00:07 +00:00
Soeren Sandmann f2b3c6e6a3 use the child's requisition.height, not allocation.height, as width of
Thu Apr 25 20:24:37 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
	requisition.height, not allocation.height, as width of submenu
	indicator. (#75948)
2002-04-25 18:24:42 +00:00
Matthias Clasen f6238492bc Merged documentation fixes from HEAD. 2002-04-24 22:09:24 +00:00
Anders Carlsson fab341df09 Update ChangeLog 2002-04-22 20:56:12 +00:00
Anders Carlsson e11dcc5426 Use gtk_entry_get_public_chars. Fixes #79532.
2002-04-22  Anders Carlsson  <andersca@gnu.org>

	* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
	gtk_entry_get_public_chars. Fixes #79532.
2002-04-22 20:54:32 +00:00
Kwok-Koon Cheung bee067608a Updated traditional Chinese translation. 2002-04-21 22:15:35 +00:00
Alexander Larsson 9eea275ed7 Merged from HEAD:
2002-04-21  Alexander Larsson  <alla@lysator.liu.se>

	Merged from HEAD:

	* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
	Save x and y in window_private.

	* gtk/gtkplug.c (_gtk_plug_add_to_socket):
	Move plug window outside the visible area to avoid flashing until
	the first size_allocate.
2002-04-21 19:26:53 +00:00
Kristian Rietveld 39e60a0564 replace GDK_IS_WINDOW with GDK_IS_DRAWABLE in the assert, only check
Sat Apr 20 16:49:26 2002  Kristian Rietveld  <kris@gtk.org>

        * gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
        with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
        if window is a GdkWindow,
        (gdk_bitmap_create_from_data): ditto,
        (gdk_pixmap_create_from_data): ditto
2002-04-20 14:47:25 +00:00
Kristian Rietveld ac5905d0db Merge TreeView fixes from HEAD up to Apr 20 2002:
Sat Apr 20 01:54:59 2002  Kristian Rietveld  <kris@gtk.org>

        Merge TreeView fixes from HEAD up to Apr 20 2002:

        (All from Apr 19):
        * gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
        TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
        size for the tree (fixes #72729),
        (gtk_tree_view_real_start_editing): correct cell_area->y for
        scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)

        * gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
        if tree_view->priv->edited_column != NULL (fixes #76066)

        (This patch fixes #50310):
        * gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize

        * gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
        and add a small note about that function,
        (gtk_tree_view_button_press): check for double click and
        "not having an autosize" column before autosizing the column,

        * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
        call _gtk_tree_view_column_autosize to update autosized column width
        (gtk_tree_view_column_set_max_width): ditto
2002-04-19 23:54:42 +00:00
Kristian Rietveld c962023b0d Merge TreeView fixes from HEAD up to Apr 19 2002:
Fri Apr 19 16:49:01 2002  Kristian Rietveld  <kris@gtk.org>

        Merge TreeView fixes from HEAD up to Apr 19 2002:

        (From Apr 16):
        * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
        ->priv->cursor and ->priv->anchor rowrefs before removing
        node->children from the rbtree. Also check the
        ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
        (I think I really need to rename those two someday).

        (From Apr 17):
        * gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs

        (From Apr 18):
        * gtk/gtktreemodelsort.c
        (gtk_tree_model_sort_convert_path_to_child_path): so this function
        was completely broken. Fix it and improve readability.

        (From Apr 19):
        * gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
        last_single_clicked{,_2} to last_button_press{,_2}, as the latter
        is a more sane name.

        * gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
        instead of ->priv->cursor, check for the anchor at another place, as
        you can go in edit mode without having an anchor.
2002-04-19 15:46:13 +00:00
Tor Lillqvist a9d9b8581b gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib) Fix typo, thanks to
2002-04-18  Tor Lillqvist  <tml@iki.fi>

	* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
	* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
	thanks to David Sterba for noticing.

	* gtk/gtkmain.h
	* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
	GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
	Win32 whether compiled with -fnative-struct or not. Unfortunately
	this wan't noticed until now. So, from now on, check some other
	struct, too, for which the use of -fnative-struct still
	matters. GtkBox is one such.
2002-04-18 11:25:23 +00:00
Jonathan Blandford 78bd6b2844 include internal children when doing focus.
Mon Apr 15 15:41:56 2002  Jonathan Blandford  <jrb@redhat.com>

	* gtk/gtkcontainer.c (gtk_container_focus): include internal
	children when doing focus.
	(gtk_container_get_all_children): new static function to include
	internal children when making a list of them.
2002-04-15 22:22:40 +00:00
175 changed files with 21692 additions and 21889 deletions
+633
View File
@@ -1,3 +1,636 @@
Thu May 23 17:19:16 2002 Owen Taylor <otaylor@redhat.com>
* Released 2.0.3.
* gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
tooltips for menu items with submenus .. they still
don't really work properly.
* gtk/gtkwindow.c (gtk_window_move_resize): Clear
initial_pos_set even if it only causes a move, not
a resize as well.
* configure.in: GTK+-2.0.3, interface age, binary age 3.
* NEWS: Updated.
2002-05-23 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct path to the loaders and immodules
directories (GTK_BINARY_VERSION, not GTK_VERSION).
Wed May 22 16:12:38 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Require autoconf-2.52 explicitely,
since otherwise Debian will process it with 2.13 (ugh!).
Wed May 22 12:29:20 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
GTK_RESIZE_QUEUE setting.
Tue May 21 16:46:15 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
Fix missing dereference. (HideToshi Tajima)
Tue May 21 15:33:32 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Conditionalize
GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
reported by Sven Neumann)
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
Mon May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
flag to fix problem where with menu items with
submenus, tooltips were getting stuck. (Effectively
disables tooltips for menu items with submenus.)
(Bug #75961, Soeren Sandmann)
* tests/testgtk.c: Set a tooltip on a menu item
with a submenu.
Mon May 20 11:47:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c: Undo an accidental revert of
fixes of May 16. (Caught by Padraig O'Briain)
* gtk/gtkctree.c (cell_size_request): Fix bug where
size request for text cells was being overwritten.
(#82264, Graham Swallow.)
2002-05-18 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for endianness.
Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_configure_event): Only
optimize out the full configure handling if we got
a gratuitous configure event(configure_request_count == 0)
and the size didn't change.
* gtk/gtkwindow.c (gtk_window_move_resize): Use
g_message(), not g_print() for debug spew.
* gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
the old and new focus widgets for the scope of
the function.
* gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
bits of old code.
* gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
Fri May 17 14:40:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
Protect against reentrancy problems by emitting
::preedit_changed at the end, fixing input context
leak. (Yao Zhang)
* modules/input/gtkimcontextxim.c (status_window_free):
Patch from Federico Mena Quintero to fix problem where
references to IMContextXIM were kept around after
module was unloaded. (#77008)
* gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
proxy window.
Fri May 17 13:56:23 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
unref in the local/passive case. (#82067, Michael
Meeks)
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
reference leak on the plug window.
* tests/testsocket.c (add_child): Fix memory leak.
* gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
the proxy window.
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
focus-some-one code for GtkPlug descendants.
* gtk/gtkplug.c (gtk_plug_focus_event): Eat
focus-in/out events since they can be generated
by keyboard grabs, but are spurious for an embeddded
widget. (#79196, Padraig O'Briain)
* gtk/gtksocket.c (gtk_socket_size_request): Only
pay attention to the minimum size hints, and changes
to that ... ignore the default size.
* gtk/gtksocket.c (gtk_socket_send_configure_event):
Pass in root-window relative coordinates as per
the ICCCM.
* gtk/gtksocket.c (gtk_socket_size_allocate): Send
as many synthetic configures as necessary to make
up for ConfigureRequest events we got. (#78799,
Dave Camp.)
Thu May 16 23:59:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
of the next node correctly, so we don't corrupt the list and cause
bad things. (fixes #71374)
Thu May 16 17:29:08 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
Thu May 16 15:44:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/editable_cells.c (cell_edited): Fix
typo in earlier patch.
Tue May 7 15:50:51 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
Don't filter control-shift+[non-hex].
(#80252, reported by Nalin Dahyabhai)
Thu May 16 14:51:14 2002 Owen Taylor <otaylor@redhat.com>
Fixes for #78258
* gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
Fix some 64-bit warning problems. (Patch from Matthias
Clasen.)
* gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
a bunch of debug code with G_ENABLE_DEBUG.
* configure.in demos/gtk-demo/main.c: Replace
#ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
Thu May 16 12:56:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:50:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
gdk_event_put() copies the event and setting name,
so we don't have to strdup() it here. (Fix from
Michael Meeks, #81953)
2002-05-16 Ettore Perazzoli <ettore@ximian.com>
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange. Fixes
#72695.
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Wed May 15 17:12:50 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Special case menu items to
pop down on motion. (#75961)
* tests/testgtk.c (create_item_factory): Add tooltips
to the File menu.
* gtk/gtkentry.c (update_im_cursor_location): Fix
cursor locations passed to the IM context.
(#80027, Yao Zhang)
Wed May 15 16:52:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Update from contents of size entry
on focus out. (#76493, Lauris Kaplinski)
* gtk/gtkclipboard.c (selection_get_cb): Fix backwads
info/time arguments. (#80226)
Wed May 15 11:13:19 2002 Owen Taylor <otaylor@redhat.com>
* configure.in gtk/stock-icons/Makefile.am: If not
building libpng, don't rebuild gtkstockpixbufs.h
(#81819, Bill Janssen)
2002-05-15 Jacob Berkman <jacob@ximian.com>
* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
executable
Tue May 14 19:53:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/geninclude.pl.in configure.in:
Subsitute in @PERL@ instead of hardcoded
/usr/bin/perl. (#78355, Gareth Pearce. Fix based
on patch from Matthias Clasen)
* gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
instead of makeenums.pl.
* gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
get gdkenumtypes.h built first.
Tue May 14 18:41:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Remove the result file on error. (#79929, David
Highley)
* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
If the menu is currently active, cancel it before
setting the new menu. (#79162, Jonathan Blandford.)
Tue May 14 18:13:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
prepending at the start of the list. (#56349,
Thomas Leonard.)
* gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
explicit casts to GSignalMatchType for C++ compatibility.
(#77601)
Tue May 14 18:02:37 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_realize): Fix
frame_right/frame_top screwup. (Detlef Reichl,
#78111)
* gtk/Makefile.am (install-data-local): Use
$(INSTALL_DATA) not $(INSTALL) when installing
theme files. (#77094, Ben Liblit)
Tue May 14 17:30:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c gtk/gtkclist.c: Fix format of
selection data to be 8 rather than GTK_TYPE_POINTER.
(#79751, James Henstridge)
* gtk/gtkmenu.c (gtk_menu_key_press): Call
gtk_accelerator_valid() with cleaned up
accel_key/accel_mods, not the raw values from
the event. (#80513, Havoc Pennington.)
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
some dead code that set the tearoff window not
resizable and removed decorations. (#80235)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Tue May 14 15:09:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
for XkbKeySymEntry to make up for OSF broken
XKB extension. (#77819, Gareth Pearce)
* gtk/gtklayout.c: Clamp the upper values in response
to ::size-allocate if necessary. (#81290, Christophe Saout)
* gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
combo being destroyed before idle fires.
(#81396, Timo Sirainen)
Tue May 14 11:21:19 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Discard configure events from SubstructureNotify.
(#81760, Rich Burridge)
* gtk/gtkfontsel.c (cmp_families): Use g_utf8_strcoll(), not
strcmp().
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): Clamp
width of child allocation to >= 1. (Fixes warnings from
#77639, Martin Schulze)
Mon May 13 23:19:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-10 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(),
which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
Thu May 9 23:33:32 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
so it doesn't screw the docs.
2002-05-08 Michael Natterer <mitch@gimp.org>
* configure.in: fixed yesterdays fix for cross compiling: simply
check the variable "cross_compiling" which gets set by autoconf.
Tue May 7 18:36:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Check for selection_atom, not property name atom.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
gdk-pixbuf-csource in PATH. Error out if it was not found.
* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
configure time if CROSS_COMPILING is set, use the one which was
just built otherwise.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Only process manager events with the correct atom.
Tue May 7 00:50:20 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(May 6):
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes #80065).
Tue May 7 00:18:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
size hack to align editable widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
here instead of g_new (this triggered some bad crash),
(gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-07 Matthias Clasen <maclas@gmx.de>
Fix for #79248, merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.
Mon May 6 11:48:08 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
* m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
compiling "what went wrong" test case. (#79329)
* m4macros/gtk-2.0.m4: Remove reference to editing
pkg-config script. (From Jim Gettys)
2002-05-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
composite_child blurb.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs. (#73093)
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
gtk_text_layout_invalidate_cache instead of cut-and-paste
(gtk_text_layout_real_invalidate): always invalidate cache, even
if the line has no stored line data. #78573
* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
gtk_text_view_ensure_layout, #77388
(gtk_text_view_get_iter_at_location): ditto
(gtk_text_view_get_line_yrange): ditto
(gtk_text_view_get_line_at_y): ditto
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
something to "prev" so that removing tag info succeeds.
Part of #77301
* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
unrefs the tag table first, so that the btree is in a consistent
state when we're removing tags from it.
* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
all tags in the tag table out of the buffer. #77301
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
2002-04-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
division by zero. (#77820)
Sat Apr 27 15:48:49 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(Apr 26):
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c
* tests/testtreeview.c: quit the main loop when the window is
destroyed. Removed compiler warnings about wrong format in printf().
Fri Apr 26 00:00:00 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 26:
(Apr 25):
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
resort if we're already in 'unsorted' state, and update the docs
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes #74806).
(Also from Apr 25, fixes #74206):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
(_gtk_tree_view_column_get_editable_cell): remove a space which made
the code look ugly
(_gtk_tree_view_column_count_special_cells): new function,
(gtk_tree_view_column_cell_process_action): if there's only one
activatable cell, the whole column will activate that renderer.
(Apr 24):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes #79632).
Thu Apr 25 20:24:37 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
requisition.height, not allocation.height, as width of submenu
indicator. (#75948)
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/gtktextiter.c:
* gtk/gtktreemodelsort.c:
* gtk/gtktextview.c: Documentation fixes. (#62359, #68404, #57929)
2002-04-22 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
gtk_entry_get_public_chars.
Fixes #79532 (Reported by Ovidiu Gheorghioiu)
2002-04-21 Alexander Larsson <alla@lysator.liu.se>
Merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Save x and y in window_private.
* gtk/gtkplug.c (_gtk_plug_add_to_socket):
Move plug window outside the visible area to avoid flashing until
the first size_allocate.
Sat Apr 20 16:49:26 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
if window is a GdkWindow,
(gdk_bitmap_create_from_data): ditto,
(gdk_pixmap_create_from_data): ditto
Sat Apr 20 01:54:59 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 20 2002:
(All from Apr 19):
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes #72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)
* gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
if tree_view->priv->edited_column != NULL (fixes #76066)
(This patch fixes #50310):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 16:49:01 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 19 2002:
(From Apr 16):
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
(From Apr 17):
* gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs
(From Apr 18):
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): so this function
was completely broken. Fix it and improve readability.
(From Apr 19):
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
2002-04-18 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
thanks to David Sterba for noticing.
* gtk/gtkmain.h
* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
Win32 whether compiled with -fnative-struct or not. Unfortunately
this wan't noticed until now. So, from now on, check some other
struct, too, for which the use of -fnative-struct still
matters. GtkBox is one such.
Mon Apr 15 15:41:56 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcontainer.c (gtk_container_focus): include internal
children when doing focus.
(gtk_container_get_all_children): new static function to include
internal children when making a list of them.
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
+633
View File
@@ -1,3 +1,636 @@
Thu May 23 17:19:16 2002 Owen Taylor <otaylor@redhat.com>
* Released 2.0.3.
* gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
tooltips for menu items with submenus .. they still
don't really work properly.
* gtk/gtkwindow.c (gtk_window_move_resize): Clear
initial_pos_set even if it only causes a move, not
a resize as well.
* configure.in: GTK+-2.0.3, interface age, binary age 3.
* NEWS: Updated.
2002-05-23 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct path to the loaders and immodules
directories (GTK_BINARY_VERSION, not GTK_VERSION).
Wed May 22 16:12:38 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Require autoconf-2.52 explicitely,
since otherwise Debian will process it with 2.13 (ugh!).
Wed May 22 12:29:20 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
GTK_RESIZE_QUEUE setting.
Tue May 21 16:46:15 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
Fix missing dereference. (HideToshi Tajima)
Tue May 21 15:33:32 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Conditionalize
GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
reported by Sven Neumann)
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
Mon May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
flag to fix problem where with menu items with
submenus, tooltips were getting stuck. (Effectively
disables tooltips for menu items with submenus.)
(Bug #75961, Soeren Sandmann)
* tests/testgtk.c: Set a tooltip on a menu item
with a submenu.
Mon May 20 11:47:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c: Undo an accidental revert of
fixes of May 16. (Caught by Padraig O'Briain)
* gtk/gtkctree.c (cell_size_request): Fix bug where
size request for text cells was being overwritten.
(#82264, Graham Swallow.)
2002-05-18 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for endianness.
Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_configure_event): Only
optimize out the full configure handling if we got
a gratuitous configure event(configure_request_count == 0)
and the size didn't change.
* gtk/gtkwindow.c (gtk_window_move_resize): Use
g_message(), not g_print() for debug spew.
* gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
the old and new focus widgets for the scope of
the function.
* gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
bits of old code.
* gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
Fri May 17 14:40:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
Protect against reentrancy problems by emitting
::preedit_changed at the end, fixing input context
leak. (Yao Zhang)
* modules/input/gtkimcontextxim.c (status_window_free):
Patch from Federico Mena Quintero to fix problem where
references to IMContextXIM were kept around after
module was unloaded. (#77008)
* gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
proxy window.
Fri May 17 13:56:23 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
unref in the local/passive case. (#82067, Michael
Meeks)
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
reference leak on the plug window.
* tests/testsocket.c (add_child): Fix memory leak.
* gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
the proxy window.
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
focus-some-one code for GtkPlug descendants.
* gtk/gtkplug.c (gtk_plug_focus_event): Eat
focus-in/out events since they can be generated
by keyboard grabs, but are spurious for an embeddded
widget. (#79196, Padraig O'Briain)
* gtk/gtksocket.c (gtk_socket_size_request): Only
pay attention to the minimum size hints, and changes
to that ... ignore the default size.
* gtk/gtksocket.c (gtk_socket_send_configure_event):
Pass in root-window relative coordinates as per
the ICCCM.
* gtk/gtksocket.c (gtk_socket_size_allocate): Send
as many synthetic configures as necessary to make
up for ConfigureRequest events we got. (#78799,
Dave Camp.)
Thu May 16 23:59:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
of the next node correctly, so we don't corrupt the list and cause
bad things. (fixes #71374)
Thu May 16 17:29:08 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
Thu May 16 15:44:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/editable_cells.c (cell_edited): Fix
typo in earlier patch.
Tue May 7 15:50:51 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
Don't filter control-shift+[non-hex].
(#80252, reported by Nalin Dahyabhai)
Thu May 16 14:51:14 2002 Owen Taylor <otaylor@redhat.com>
Fixes for #78258
* gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
Fix some 64-bit warning problems. (Patch from Matthias
Clasen.)
* gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
a bunch of debug code with G_ENABLE_DEBUG.
* configure.in demos/gtk-demo/main.c: Replace
#ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
Thu May 16 12:56:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:50:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
gdk_event_put() copies the event and setting name,
so we don't have to strdup() it here. (Fix from
Michael Meeks, #81953)
2002-05-16 Ettore Perazzoli <ettore@ximian.com>
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange. Fixes
#72695.
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Wed May 15 17:12:50 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Special case menu items to
pop down on motion. (#75961)
* tests/testgtk.c (create_item_factory): Add tooltips
to the File menu.
* gtk/gtkentry.c (update_im_cursor_location): Fix
cursor locations passed to the IM context.
(#80027, Yao Zhang)
Wed May 15 16:52:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Update from contents of size entry
on focus out. (#76493, Lauris Kaplinski)
* gtk/gtkclipboard.c (selection_get_cb): Fix backwads
info/time arguments. (#80226)
Wed May 15 11:13:19 2002 Owen Taylor <otaylor@redhat.com>
* configure.in gtk/stock-icons/Makefile.am: If not
building libpng, don't rebuild gtkstockpixbufs.h
(#81819, Bill Janssen)
2002-05-15 Jacob Berkman <jacob@ximian.com>
* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
executable
Tue May 14 19:53:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/geninclude.pl.in configure.in:
Subsitute in @PERL@ instead of hardcoded
/usr/bin/perl. (#78355, Gareth Pearce. Fix based
on patch from Matthias Clasen)
* gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
instead of makeenums.pl.
* gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
get gdkenumtypes.h built first.
Tue May 14 18:41:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Remove the result file on error. (#79929, David
Highley)
* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
If the menu is currently active, cancel it before
setting the new menu. (#79162, Jonathan Blandford.)
Tue May 14 18:13:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
prepending at the start of the list. (#56349,
Thomas Leonard.)
* gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
explicit casts to GSignalMatchType for C++ compatibility.
(#77601)
Tue May 14 18:02:37 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_realize): Fix
frame_right/frame_top screwup. (Detlef Reichl,
#78111)
* gtk/Makefile.am (install-data-local): Use
$(INSTALL_DATA) not $(INSTALL) when installing
theme files. (#77094, Ben Liblit)
Tue May 14 17:30:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c gtk/gtkclist.c: Fix format of
selection data to be 8 rather than GTK_TYPE_POINTER.
(#79751, James Henstridge)
* gtk/gtkmenu.c (gtk_menu_key_press): Call
gtk_accelerator_valid() with cleaned up
accel_key/accel_mods, not the raw values from
the event. (#80513, Havoc Pennington.)
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
some dead code that set the tearoff window not
resizable and removed decorations. (#80235)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Tue May 14 15:09:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
for XkbKeySymEntry to make up for OSF broken
XKB extension. (#77819, Gareth Pearce)
* gtk/gtklayout.c: Clamp the upper values in response
to ::size-allocate if necessary. (#81290, Christophe Saout)
* gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
combo being destroyed before idle fires.
(#81396, Timo Sirainen)
Tue May 14 11:21:19 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Discard configure events from SubstructureNotify.
(#81760, Rich Burridge)
* gtk/gtkfontsel.c (cmp_families): Use g_utf8_strcoll(), not
strcmp().
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): Clamp
width of child allocation to >= 1. (Fixes warnings from
#77639, Martin Schulze)
Mon May 13 23:19:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-10 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(),
which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
Thu May 9 23:33:32 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
so it doesn't screw the docs.
2002-05-08 Michael Natterer <mitch@gimp.org>
* configure.in: fixed yesterdays fix for cross compiling: simply
check the variable "cross_compiling" which gets set by autoconf.
Tue May 7 18:36:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Check for selection_atom, not property name atom.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
gdk-pixbuf-csource in PATH. Error out if it was not found.
* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
configure time if CROSS_COMPILING is set, use the one which was
just built otherwise.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Only process manager events with the correct atom.
Tue May 7 00:50:20 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(May 6):
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes #80065).
Tue May 7 00:18:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
size hack to align editable widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
here instead of g_new (this triggered some bad crash),
(gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-07 Matthias Clasen <maclas@gmx.de>
Fix for #79248, merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.
Mon May 6 11:48:08 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
* m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
compiling "what went wrong" test case. (#79329)
* m4macros/gtk-2.0.m4: Remove reference to editing
pkg-config script. (From Jim Gettys)
2002-05-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
composite_child blurb.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs. (#73093)
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
gtk_text_layout_invalidate_cache instead of cut-and-paste
(gtk_text_layout_real_invalidate): always invalidate cache, even
if the line has no stored line data. #78573
* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
gtk_text_view_ensure_layout, #77388
(gtk_text_view_get_iter_at_location): ditto
(gtk_text_view_get_line_yrange): ditto
(gtk_text_view_get_line_at_y): ditto
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
something to "prev" so that removing tag info succeeds.
Part of #77301
* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
unrefs the tag table first, so that the btree is in a consistent
state when we're removing tags from it.
* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
all tags in the tag table out of the buffer. #77301
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
2002-04-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
division by zero. (#77820)
Sat Apr 27 15:48:49 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(Apr 26):
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c
* tests/testtreeview.c: quit the main loop when the window is
destroyed. Removed compiler warnings about wrong format in printf().
Fri Apr 26 00:00:00 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 26:
(Apr 25):
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
resort if we're already in 'unsorted' state, and update the docs
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes #74806).
(Also from Apr 25, fixes #74206):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
(_gtk_tree_view_column_get_editable_cell): remove a space which made
the code look ugly
(_gtk_tree_view_column_count_special_cells): new function,
(gtk_tree_view_column_cell_process_action): if there's only one
activatable cell, the whole column will activate that renderer.
(Apr 24):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes #79632).
Thu Apr 25 20:24:37 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
requisition.height, not allocation.height, as width of submenu
indicator. (#75948)
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/gtktextiter.c:
* gtk/gtktreemodelsort.c:
* gtk/gtktextview.c: Documentation fixes. (#62359, #68404, #57929)
2002-04-22 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
gtk_entry_get_public_chars.
Fixes #79532 (Reported by Ovidiu Gheorghioiu)
2002-04-21 Alexander Larsson <alla@lysator.liu.se>
Merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Save x and y in window_private.
* gtk/gtkplug.c (_gtk_plug_add_to_socket):
Move plug window outside the visible area to avoid flashing until
the first size_allocate.
Sat Apr 20 16:49:26 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
if window is a GdkWindow,
(gdk_bitmap_create_from_data): ditto,
(gdk_pixmap_create_from_data): ditto
Sat Apr 20 01:54:59 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 20 2002:
(All from Apr 19):
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes #72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)
* gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
if tree_view->priv->edited_column != NULL (fixes #76066)
(This patch fixes #50310):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 16:49:01 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 19 2002:
(From Apr 16):
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
(From Apr 17):
* gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs
(From Apr 18):
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): so this function
was completely broken. Fix it and improve readability.
(From Apr 19):
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
2002-04-18 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
thanks to David Sterba for noticing.
* gtk/gtkmain.h
* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
Win32 whether compiled with -fnative-struct or not. Unfortunately
this wan't noticed until now. So, from now on, check some other
struct, too, for which the use of -fnative-struct still
matters. GtkBox is one such.
Mon Apr 15 15:41:56 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcontainer.c (gtk_container_focus): include internal
children when doing focus.
(gtk_container_get_all_children): new static function to include
internal children when making a list of them.
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
+633
View File
@@ -1,3 +1,636 @@
Thu May 23 17:19:16 2002 Owen Taylor <otaylor@redhat.com>
* Released 2.0.3.
* gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
tooltips for menu items with submenus .. they still
don't really work properly.
* gtk/gtkwindow.c (gtk_window_move_resize): Clear
initial_pos_set even if it only causes a move, not
a resize as well.
* configure.in: GTK+-2.0.3, interface age, binary age 3.
* NEWS: Updated.
2002-05-23 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct path to the loaders and immodules
directories (GTK_BINARY_VERSION, not GTK_VERSION).
Wed May 22 16:12:38 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Require autoconf-2.52 explicitely,
since otherwise Debian will process it with 2.13 (ugh!).
Wed May 22 12:29:20 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
GTK_RESIZE_QUEUE setting.
Tue May 21 16:46:15 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
Fix missing dereference. (HideToshi Tajima)
Tue May 21 15:33:32 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Conditionalize
GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
reported by Sven Neumann)
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
Mon May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
flag to fix problem where with menu items with
submenus, tooltips were getting stuck. (Effectively
disables tooltips for menu items with submenus.)
(Bug #75961, Soeren Sandmann)
* tests/testgtk.c: Set a tooltip on a menu item
with a submenu.
Mon May 20 11:47:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c: Undo an accidental revert of
fixes of May 16. (Caught by Padraig O'Briain)
* gtk/gtkctree.c (cell_size_request): Fix bug where
size request for text cells was being overwritten.
(#82264, Graham Swallow.)
2002-05-18 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for endianness.
Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_configure_event): Only
optimize out the full configure handling if we got
a gratuitous configure event(configure_request_count == 0)
and the size didn't change.
* gtk/gtkwindow.c (gtk_window_move_resize): Use
g_message(), not g_print() for debug spew.
* gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
the old and new focus widgets for the scope of
the function.
* gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
bits of old code.
* gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
Fri May 17 14:40:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
Protect against reentrancy problems by emitting
::preedit_changed at the end, fixing input context
leak. (Yao Zhang)
* modules/input/gtkimcontextxim.c (status_window_free):
Patch from Federico Mena Quintero to fix problem where
references to IMContextXIM were kept around after
module was unloaded. (#77008)
* gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
proxy window.
Fri May 17 13:56:23 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
unref in the local/passive case. (#82067, Michael
Meeks)
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
reference leak on the plug window.
* tests/testsocket.c (add_child): Fix memory leak.
* gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
the proxy window.
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
focus-some-one code for GtkPlug descendants.
* gtk/gtkplug.c (gtk_plug_focus_event): Eat
focus-in/out events since they can be generated
by keyboard grabs, but are spurious for an embeddded
widget. (#79196, Padraig O'Briain)
* gtk/gtksocket.c (gtk_socket_size_request): Only
pay attention to the minimum size hints, and changes
to that ... ignore the default size.
* gtk/gtksocket.c (gtk_socket_send_configure_event):
Pass in root-window relative coordinates as per
the ICCCM.
* gtk/gtksocket.c (gtk_socket_size_allocate): Send
as many synthetic configures as necessary to make
up for ConfigureRequest events we got. (#78799,
Dave Camp.)
Thu May 16 23:59:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
of the next node correctly, so we don't corrupt the list and cause
bad things. (fixes #71374)
Thu May 16 17:29:08 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
Thu May 16 15:44:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/editable_cells.c (cell_edited): Fix
typo in earlier patch.
Tue May 7 15:50:51 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
Don't filter control-shift+[non-hex].
(#80252, reported by Nalin Dahyabhai)
Thu May 16 14:51:14 2002 Owen Taylor <otaylor@redhat.com>
Fixes for #78258
* gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
Fix some 64-bit warning problems. (Patch from Matthias
Clasen.)
* gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
a bunch of debug code with G_ENABLE_DEBUG.
* configure.in demos/gtk-demo/main.c: Replace
#ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
Thu May 16 12:56:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:50:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
gdk_event_put() copies the event and setting name,
so we don't have to strdup() it here. (Fix from
Michael Meeks, #81953)
2002-05-16 Ettore Perazzoli <ettore@ximian.com>
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange. Fixes
#72695.
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Wed May 15 17:12:50 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Special case menu items to
pop down on motion. (#75961)
* tests/testgtk.c (create_item_factory): Add tooltips
to the File menu.
* gtk/gtkentry.c (update_im_cursor_location): Fix
cursor locations passed to the IM context.
(#80027, Yao Zhang)
Wed May 15 16:52:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Update from contents of size entry
on focus out. (#76493, Lauris Kaplinski)
* gtk/gtkclipboard.c (selection_get_cb): Fix backwads
info/time arguments. (#80226)
Wed May 15 11:13:19 2002 Owen Taylor <otaylor@redhat.com>
* configure.in gtk/stock-icons/Makefile.am: If not
building libpng, don't rebuild gtkstockpixbufs.h
(#81819, Bill Janssen)
2002-05-15 Jacob Berkman <jacob@ximian.com>
* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
executable
Tue May 14 19:53:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/geninclude.pl.in configure.in:
Subsitute in @PERL@ instead of hardcoded
/usr/bin/perl. (#78355, Gareth Pearce. Fix based
on patch from Matthias Clasen)
* gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
instead of makeenums.pl.
* gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
get gdkenumtypes.h built first.
Tue May 14 18:41:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Remove the result file on error. (#79929, David
Highley)
* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
If the menu is currently active, cancel it before
setting the new menu. (#79162, Jonathan Blandford.)
Tue May 14 18:13:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
prepending at the start of the list. (#56349,
Thomas Leonard.)
* gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
explicit casts to GSignalMatchType for C++ compatibility.
(#77601)
Tue May 14 18:02:37 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_realize): Fix
frame_right/frame_top screwup. (Detlef Reichl,
#78111)
* gtk/Makefile.am (install-data-local): Use
$(INSTALL_DATA) not $(INSTALL) when installing
theme files. (#77094, Ben Liblit)
Tue May 14 17:30:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c gtk/gtkclist.c: Fix format of
selection data to be 8 rather than GTK_TYPE_POINTER.
(#79751, James Henstridge)
* gtk/gtkmenu.c (gtk_menu_key_press): Call
gtk_accelerator_valid() with cleaned up
accel_key/accel_mods, not the raw values from
the event. (#80513, Havoc Pennington.)
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
some dead code that set the tearoff window not
resizable and removed decorations. (#80235)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Tue May 14 15:09:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
for XkbKeySymEntry to make up for OSF broken
XKB extension. (#77819, Gareth Pearce)
* gtk/gtklayout.c: Clamp the upper values in response
to ::size-allocate if necessary. (#81290, Christophe Saout)
* gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
combo being destroyed before idle fires.
(#81396, Timo Sirainen)
Tue May 14 11:21:19 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Discard configure events from SubstructureNotify.
(#81760, Rich Burridge)
* gtk/gtkfontsel.c (cmp_families): Use g_utf8_strcoll(), not
strcmp().
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): Clamp
width of child allocation to >= 1. (Fixes warnings from
#77639, Martin Schulze)
Mon May 13 23:19:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-10 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(),
which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
Thu May 9 23:33:32 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
so it doesn't screw the docs.
2002-05-08 Michael Natterer <mitch@gimp.org>
* configure.in: fixed yesterdays fix for cross compiling: simply
check the variable "cross_compiling" which gets set by autoconf.
Tue May 7 18:36:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Check for selection_atom, not property name atom.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
gdk-pixbuf-csource in PATH. Error out if it was not found.
* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
configure time if CROSS_COMPILING is set, use the one which was
just built otherwise.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Only process manager events with the correct atom.
Tue May 7 00:50:20 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(May 6):
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes #80065).
Tue May 7 00:18:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
size hack to align editable widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
here instead of g_new (this triggered some bad crash),
(gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-07 Matthias Clasen <maclas@gmx.de>
Fix for #79248, merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.
Mon May 6 11:48:08 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
* m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
compiling "what went wrong" test case. (#79329)
* m4macros/gtk-2.0.m4: Remove reference to editing
pkg-config script. (From Jim Gettys)
2002-05-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
composite_child blurb.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs. (#73093)
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
gtk_text_layout_invalidate_cache instead of cut-and-paste
(gtk_text_layout_real_invalidate): always invalidate cache, even
if the line has no stored line data. #78573
* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
gtk_text_view_ensure_layout, #77388
(gtk_text_view_get_iter_at_location): ditto
(gtk_text_view_get_line_yrange): ditto
(gtk_text_view_get_line_at_y): ditto
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
something to "prev" so that removing tag info succeeds.
Part of #77301
* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
unrefs the tag table first, so that the btree is in a consistent
state when we're removing tags from it.
* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
all tags in the tag table out of the buffer. #77301
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
2002-04-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
division by zero. (#77820)
Sat Apr 27 15:48:49 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(Apr 26):
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c
* tests/testtreeview.c: quit the main loop when the window is
destroyed. Removed compiler warnings about wrong format in printf().
Fri Apr 26 00:00:00 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 26:
(Apr 25):
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
resort if we're already in 'unsorted' state, and update the docs
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes #74806).
(Also from Apr 25, fixes #74206):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
(_gtk_tree_view_column_get_editable_cell): remove a space which made
the code look ugly
(_gtk_tree_view_column_count_special_cells): new function,
(gtk_tree_view_column_cell_process_action): if there's only one
activatable cell, the whole column will activate that renderer.
(Apr 24):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes #79632).
Thu Apr 25 20:24:37 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
requisition.height, not allocation.height, as width of submenu
indicator. (#75948)
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/gtktextiter.c:
* gtk/gtktreemodelsort.c:
* gtk/gtktextview.c: Documentation fixes. (#62359, #68404, #57929)
2002-04-22 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
gtk_entry_get_public_chars.
Fixes #79532 (Reported by Ovidiu Gheorghioiu)
2002-04-21 Alexander Larsson <alla@lysator.liu.se>
Merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Save x and y in window_private.
* gtk/gtkplug.c (_gtk_plug_add_to_socket):
Move plug window outside the visible area to avoid flashing until
the first size_allocate.
Sat Apr 20 16:49:26 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
if window is a GdkWindow,
(gdk_bitmap_create_from_data): ditto,
(gdk_pixmap_create_from_data): ditto
Sat Apr 20 01:54:59 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 20 2002:
(All from Apr 19):
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes #72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)
* gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
if tree_view->priv->edited_column != NULL (fixes #76066)
(This patch fixes #50310):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 16:49:01 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 19 2002:
(From Apr 16):
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
(From Apr 17):
* gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs
(From Apr 18):
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): so this function
was completely broken. Fix it and improve readability.
(From Apr 19):
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
2002-04-18 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
thanks to David Sterba for noticing.
* gtk/gtkmain.h
* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
Win32 whether compiled with -fnative-struct or not. Unfortunately
this wan't noticed until now. So, from now on, check some other
struct, too, for which the use of -fnative-struct still
matters. GtkBox is one such.
Mon Apr 15 15:41:56 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcontainer.c (gtk_container_focus): include internal
children when doing focus.
(gtk_container_get_all_children): new static function to include
internal children when making a list of them.
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
+633
View File
@@ -1,3 +1,636 @@
Thu May 23 17:19:16 2002 Owen Taylor <otaylor@redhat.com>
* Released 2.0.3.
* gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
tooltips for menu items with submenus .. they still
don't really work properly.
* gtk/gtkwindow.c (gtk_window_move_resize): Clear
initial_pos_set even if it only causes a move, not
a resize as well.
* configure.in: GTK+-2.0.3, interface age, binary age 3.
* NEWS: Updated.
2002-05-23 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct path to the loaders and immodules
directories (GTK_BINARY_VERSION, not GTK_VERSION).
Wed May 22 16:12:38 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Require autoconf-2.52 explicitely,
since otherwise Debian will process it with 2.13 (ugh!).
Wed May 22 12:29:20 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
GTK_RESIZE_QUEUE setting.
Tue May 21 16:46:15 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
Fix missing dereference. (HideToshi Tajima)
Tue May 21 15:33:32 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Conditionalize
GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
reported by Sven Neumann)
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
Mon May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
flag to fix problem where with menu items with
submenus, tooltips were getting stuck. (Effectively
disables tooltips for menu items with submenus.)
(Bug #75961, Soeren Sandmann)
* tests/testgtk.c: Set a tooltip on a menu item
with a submenu.
Mon May 20 11:47:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c: Undo an accidental revert of
fixes of May 16. (Caught by Padraig O'Briain)
* gtk/gtkctree.c (cell_size_request): Fix bug where
size request for text cells was being overwritten.
(#82264, Graham Swallow.)
2002-05-18 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for endianness.
Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_configure_event): Only
optimize out the full configure handling if we got
a gratuitous configure event(configure_request_count == 0)
and the size didn't change.
* gtk/gtkwindow.c (gtk_window_move_resize): Use
g_message(), not g_print() for debug spew.
* gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
the old and new focus widgets for the scope of
the function.
* gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
bits of old code.
* gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
Fri May 17 14:40:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
Protect against reentrancy problems by emitting
::preedit_changed at the end, fixing input context
leak. (Yao Zhang)
* modules/input/gtkimcontextxim.c (status_window_free):
Patch from Federico Mena Quintero to fix problem where
references to IMContextXIM were kept around after
module was unloaded. (#77008)
* gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
proxy window.
Fri May 17 13:56:23 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
unref in the local/passive case. (#82067, Michael
Meeks)
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
reference leak on the plug window.
* tests/testsocket.c (add_child): Fix memory leak.
* gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
the proxy window.
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
focus-some-one code for GtkPlug descendants.
* gtk/gtkplug.c (gtk_plug_focus_event): Eat
focus-in/out events since they can be generated
by keyboard grabs, but are spurious for an embeddded
widget. (#79196, Padraig O'Briain)
* gtk/gtksocket.c (gtk_socket_size_request): Only
pay attention to the minimum size hints, and changes
to that ... ignore the default size.
* gtk/gtksocket.c (gtk_socket_send_configure_event):
Pass in root-window relative coordinates as per
the ICCCM.
* gtk/gtksocket.c (gtk_socket_size_allocate): Send
as many synthetic configures as necessary to make
up for ConfigureRequest events we got. (#78799,
Dave Camp.)
Thu May 16 23:59:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
of the next node correctly, so we don't corrupt the list and cause
bad things. (fixes #71374)
Thu May 16 17:29:08 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
Thu May 16 15:44:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/editable_cells.c (cell_edited): Fix
typo in earlier patch.
Tue May 7 15:50:51 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
Don't filter control-shift+[non-hex].
(#80252, reported by Nalin Dahyabhai)
Thu May 16 14:51:14 2002 Owen Taylor <otaylor@redhat.com>
Fixes for #78258
* gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
Fix some 64-bit warning problems. (Patch from Matthias
Clasen.)
* gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
a bunch of debug code with G_ENABLE_DEBUG.
* configure.in demos/gtk-demo/main.c: Replace
#ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
Thu May 16 12:56:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:50:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
gdk_event_put() copies the event and setting name,
so we don't have to strdup() it here. (Fix from
Michael Meeks, #81953)
2002-05-16 Ettore Perazzoli <ettore@ximian.com>
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange. Fixes
#72695.
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Wed May 15 17:12:50 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Special case menu items to
pop down on motion. (#75961)
* tests/testgtk.c (create_item_factory): Add tooltips
to the File menu.
* gtk/gtkentry.c (update_im_cursor_location): Fix
cursor locations passed to the IM context.
(#80027, Yao Zhang)
Wed May 15 16:52:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Update from contents of size entry
on focus out. (#76493, Lauris Kaplinski)
* gtk/gtkclipboard.c (selection_get_cb): Fix backwads
info/time arguments. (#80226)
Wed May 15 11:13:19 2002 Owen Taylor <otaylor@redhat.com>
* configure.in gtk/stock-icons/Makefile.am: If not
building libpng, don't rebuild gtkstockpixbufs.h
(#81819, Bill Janssen)
2002-05-15 Jacob Berkman <jacob@ximian.com>
* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
executable
Tue May 14 19:53:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/geninclude.pl.in configure.in:
Subsitute in @PERL@ instead of hardcoded
/usr/bin/perl. (#78355, Gareth Pearce. Fix based
on patch from Matthias Clasen)
* gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
instead of makeenums.pl.
* gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
get gdkenumtypes.h built first.
Tue May 14 18:41:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Remove the result file on error. (#79929, David
Highley)
* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
If the menu is currently active, cancel it before
setting the new menu. (#79162, Jonathan Blandford.)
Tue May 14 18:13:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
prepending at the start of the list. (#56349,
Thomas Leonard.)
* gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
explicit casts to GSignalMatchType for C++ compatibility.
(#77601)
Tue May 14 18:02:37 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_realize): Fix
frame_right/frame_top screwup. (Detlef Reichl,
#78111)
* gtk/Makefile.am (install-data-local): Use
$(INSTALL_DATA) not $(INSTALL) when installing
theme files. (#77094, Ben Liblit)
Tue May 14 17:30:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c gtk/gtkclist.c: Fix format of
selection data to be 8 rather than GTK_TYPE_POINTER.
(#79751, James Henstridge)
* gtk/gtkmenu.c (gtk_menu_key_press): Call
gtk_accelerator_valid() with cleaned up
accel_key/accel_mods, not the raw values from
the event. (#80513, Havoc Pennington.)
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
some dead code that set the tearoff window not
resizable and removed decorations. (#80235)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Tue May 14 15:09:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
for XkbKeySymEntry to make up for OSF broken
XKB extension. (#77819, Gareth Pearce)
* gtk/gtklayout.c: Clamp the upper values in response
to ::size-allocate if necessary. (#81290, Christophe Saout)
* gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
combo being destroyed before idle fires.
(#81396, Timo Sirainen)
Tue May 14 11:21:19 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Discard configure events from SubstructureNotify.
(#81760, Rich Burridge)
* gtk/gtkfontsel.c (cmp_families): Use g_utf8_strcoll(), not
strcmp().
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): Clamp
width of child allocation to >= 1. (Fixes warnings from
#77639, Martin Schulze)
Mon May 13 23:19:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-10 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(),
which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
Thu May 9 23:33:32 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
so it doesn't screw the docs.
2002-05-08 Michael Natterer <mitch@gimp.org>
* configure.in: fixed yesterdays fix for cross compiling: simply
check the variable "cross_compiling" which gets set by autoconf.
Tue May 7 18:36:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Check for selection_atom, not property name atom.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
gdk-pixbuf-csource in PATH. Error out if it was not found.
* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
configure time if CROSS_COMPILING is set, use the one which was
just built otherwise.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Only process manager events with the correct atom.
Tue May 7 00:50:20 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(May 6):
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes #80065).
Tue May 7 00:18:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
size hack to align editable widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
here instead of g_new (this triggered some bad crash),
(gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-07 Matthias Clasen <maclas@gmx.de>
Fix for #79248, merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.
Mon May 6 11:48:08 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
* m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
compiling "what went wrong" test case. (#79329)
* m4macros/gtk-2.0.m4: Remove reference to editing
pkg-config script. (From Jim Gettys)
2002-05-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
composite_child blurb.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs. (#73093)
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
gtk_text_layout_invalidate_cache instead of cut-and-paste
(gtk_text_layout_real_invalidate): always invalidate cache, even
if the line has no stored line data. #78573
* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
gtk_text_view_ensure_layout, #77388
(gtk_text_view_get_iter_at_location): ditto
(gtk_text_view_get_line_yrange): ditto
(gtk_text_view_get_line_at_y): ditto
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
something to "prev" so that removing tag info succeeds.
Part of #77301
* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
unrefs the tag table first, so that the btree is in a consistent
state when we're removing tags from it.
* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
all tags in the tag table out of the buffer. #77301
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
2002-04-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
division by zero. (#77820)
Sat Apr 27 15:48:49 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(Apr 26):
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c
* tests/testtreeview.c: quit the main loop when the window is
destroyed. Removed compiler warnings about wrong format in printf().
Fri Apr 26 00:00:00 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 26:
(Apr 25):
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
resort if we're already in 'unsorted' state, and update the docs
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes #74806).
(Also from Apr 25, fixes #74206):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
(_gtk_tree_view_column_get_editable_cell): remove a space which made
the code look ugly
(_gtk_tree_view_column_count_special_cells): new function,
(gtk_tree_view_column_cell_process_action): if there's only one
activatable cell, the whole column will activate that renderer.
(Apr 24):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes #79632).
Thu Apr 25 20:24:37 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
requisition.height, not allocation.height, as width of submenu
indicator. (#75948)
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/gtktextiter.c:
* gtk/gtktreemodelsort.c:
* gtk/gtktextview.c: Documentation fixes. (#62359, #68404, #57929)
2002-04-22 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
gtk_entry_get_public_chars.
Fixes #79532 (Reported by Ovidiu Gheorghioiu)
2002-04-21 Alexander Larsson <alla@lysator.liu.se>
Merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Save x and y in window_private.
* gtk/gtkplug.c (_gtk_plug_add_to_socket):
Move plug window outside the visible area to avoid flashing until
the first size_allocate.
Sat Apr 20 16:49:26 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
if window is a GdkWindow,
(gdk_bitmap_create_from_data): ditto,
(gdk_pixmap_create_from_data): ditto
Sat Apr 20 01:54:59 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 20 2002:
(All from Apr 19):
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes #72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)
* gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
if tree_view->priv->edited_column != NULL (fixes #76066)
(This patch fixes #50310):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 16:49:01 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 19 2002:
(From Apr 16):
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
(From Apr 17):
* gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs
(From Apr 18):
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): so this function
was completely broken. Fix it and improve readability.
(From Apr 19):
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
2002-04-18 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
thanks to David Sterba for noticing.
* gtk/gtkmain.h
* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
Win32 whether compiled with -fnative-struct or not. Unfortunately
this wan't noticed until now. So, from now on, check some other
struct, too, for which the use of -fnative-struct still
matters. GtkBox is one such.
Mon Apr 15 15:41:56 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcontainer.c (gtk_container_focus): include internal
children when doing focus.
(gtk_container_get_all_children): new static function to include
internal children when making a list of them.
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
+633
View File
@@ -1,3 +1,636 @@
Thu May 23 17:19:16 2002 Owen Taylor <otaylor@redhat.com>
* Released 2.0.3.
* gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
tooltips for menu items with submenus .. they still
don't really work properly.
* gtk/gtkwindow.c (gtk_window_move_resize): Clear
initial_pos_set even if it only causes a move, not
a resize as well.
* configure.in: GTK+-2.0.3, interface age, binary age 3.
* NEWS: Updated.
2002-05-23 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct path to the loaders and immodules
directories (GTK_BINARY_VERSION, not GTK_VERSION).
Wed May 22 16:12:38 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Require autoconf-2.52 explicitely,
since otherwise Debian will process it with 2.13 (ugh!).
Wed May 22 12:29:20 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
GTK_RESIZE_QUEUE setting.
Tue May 21 16:46:15 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
Fix missing dereference. (HideToshi Tajima)
Tue May 21 15:33:32 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Conditionalize
GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
reported by Sven Neumann)
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
Mon May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
flag to fix problem where with menu items with
submenus, tooltips were getting stuck. (Effectively
disables tooltips for menu items with submenus.)
(Bug #75961, Soeren Sandmann)
* tests/testgtk.c: Set a tooltip on a menu item
with a submenu.
Mon May 20 11:47:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c: Undo an accidental revert of
fixes of May 16. (Caught by Padraig O'Briain)
* gtk/gtkctree.c (cell_size_request): Fix bug where
size request for text cells was being overwritten.
(#82264, Graham Swallow.)
2002-05-18 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for endianness.
Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_configure_event): Only
optimize out the full configure handling if we got
a gratuitous configure event(configure_request_count == 0)
and the size didn't change.
* gtk/gtkwindow.c (gtk_window_move_resize): Use
g_message(), not g_print() for debug spew.
* gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
the old and new focus widgets for the scope of
the function.
* gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
bits of old code.
* gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
Fri May 17 14:40:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
Protect against reentrancy problems by emitting
::preedit_changed at the end, fixing input context
leak. (Yao Zhang)
* modules/input/gtkimcontextxim.c (status_window_free):
Patch from Federico Mena Quintero to fix problem where
references to IMContextXIM were kept around after
module was unloaded. (#77008)
* gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
proxy window.
Fri May 17 13:56:23 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
unref in the local/passive case. (#82067, Michael
Meeks)
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
reference leak on the plug window.
* tests/testsocket.c (add_child): Fix memory leak.
* gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
the proxy window.
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
focus-some-one code for GtkPlug descendants.
* gtk/gtkplug.c (gtk_plug_focus_event): Eat
focus-in/out events since they can be generated
by keyboard grabs, but are spurious for an embeddded
widget. (#79196, Padraig O'Briain)
* gtk/gtksocket.c (gtk_socket_size_request): Only
pay attention to the minimum size hints, and changes
to that ... ignore the default size.
* gtk/gtksocket.c (gtk_socket_send_configure_event):
Pass in root-window relative coordinates as per
the ICCCM.
* gtk/gtksocket.c (gtk_socket_size_allocate): Send
as many synthetic configures as necessary to make
up for ConfigureRequest events we got. (#78799,
Dave Camp.)
Thu May 16 23:59:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
of the next node correctly, so we don't corrupt the list and cause
bad things. (fixes #71374)
Thu May 16 17:29:08 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
Thu May 16 15:44:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/editable_cells.c (cell_edited): Fix
typo in earlier patch.
Tue May 7 15:50:51 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
Don't filter control-shift+[non-hex].
(#80252, reported by Nalin Dahyabhai)
Thu May 16 14:51:14 2002 Owen Taylor <otaylor@redhat.com>
Fixes for #78258
* gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
Fix some 64-bit warning problems. (Patch from Matthias
Clasen.)
* gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
a bunch of debug code with G_ENABLE_DEBUG.
* configure.in demos/gtk-demo/main.c: Replace
#ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
Thu May 16 12:56:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:50:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
gdk_event_put() copies the event and setting name,
so we don't have to strdup() it here. (Fix from
Michael Meeks, #81953)
2002-05-16 Ettore Perazzoli <ettore@ximian.com>
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange. Fixes
#72695.
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Wed May 15 17:12:50 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Special case menu items to
pop down on motion. (#75961)
* tests/testgtk.c (create_item_factory): Add tooltips
to the File menu.
* gtk/gtkentry.c (update_im_cursor_location): Fix
cursor locations passed to the IM context.
(#80027, Yao Zhang)
Wed May 15 16:52:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Update from contents of size entry
on focus out. (#76493, Lauris Kaplinski)
* gtk/gtkclipboard.c (selection_get_cb): Fix backwads
info/time arguments. (#80226)
Wed May 15 11:13:19 2002 Owen Taylor <otaylor@redhat.com>
* configure.in gtk/stock-icons/Makefile.am: If not
building libpng, don't rebuild gtkstockpixbufs.h
(#81819, Bill Janssen)
2002-05-15 Jacob Berkman <jacob@ximian.com>
* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
executable
Tue May 14 19:53:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/geninclude.pl.in configure.in:
Subsitute in @PERL@ instead of hardcoded
/usr/bin/perl. (#78355, Gareth Pearce. Fix based
on patch from Matthias Clasen)
* gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
instead of makeenums.pl.
* gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
get gdkenumtypes.h built first.
Tue May 14 18:41:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Remove the result file on error. (#79929, David
Highley)
* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
If the menu is currently active, cancel it before
setting the new menu. (#79162, Jonathan Blandford.)
Tue May 14 18:13:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
prepending at the start of the list. (#56349,
Thomas Leonard.)
* gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
explicit casts to GSignalMatchType for C++ compatibility.
(#77601)
Tue May 14 18:02:37 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_realize): Fix
frame_right/frame_top screwup. (Detlef Reichl,
#78111)
* gtk/Makefile.am (install-data-local): Use
$(INSTALL_DATA) not $(INSTALL) when installing
theme files. (#77094, Ben Liblit)
Tue May 14 17:30:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c gtk/gtkclist.c: Fix format of
selection data to be 8 rather than GTK_TYPE_POINTER.
(#79751, James Henstridge)
* gtk/gtkmenu.c (gtk_menu_key_press): Call
gtk_accelerator_valid() with cleaned up
accel_key/accel_mods, not the raw values from
the event. (#80513, Havoc Pennington.)
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
some dead code that set the tearoff window not
resizable and removed decorations. (#80235)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Tue May 14 15:09:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
for XkbKeySymEntry to make up for OSF broken
XKB extension. (#77819, Gareth Pearce)
* gtk/gtklayout.c: Clamp the upper values in response
to ::size-allocate if necessary. (#81290, Christophe Saout)
* gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
combo being destroyed before idle fires.
(#81396, Timo Sirainen)
Tue May 14 11:21:19 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Discard configure events from SubstructureNotify.
(#81760, Rich Burridge)
* gtk/gtkfontsel.c (cmp_families): Use g_utf8_strcoll(), not
strcmp().
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): Clamp
width of child allocation to >= 1. (Fixes warnings from
#77639, Martin Schulze)
Mon May 13 23:19:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-10 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(),
which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
Thu May 9 23:33:32 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
so it doesn't screw the docs.
2002-05-08 Michael Natterer <mitch@gimp.org>
* configure.in: fixed yesterdays fix for cross compiling: simply
check the variable "cross_compiling" which gets set by autoconf.
Tue May 7 18:36:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Check for selection_atom, not property name atom.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
gdk-pixbuf-csource in PATH. Error out if it was not found.
* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
configure time if CROSS_COMPILING is set, use the one which was
just built otherwise.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Only process manager events with the correct atom.
Tue May 7 00:50:20 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(May 6):
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes #80065).
Tue May 7 00:18:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
size hack to align editable widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
here instead of g_new (this triggered some bad crash),
(gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-07 Matthias Clasen <maclas@gmx.de>
Fix for #79248, merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.
Mon May 6 11:48:08 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
* m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
compiling "what went wrong" test case. (#79329)
* m4macros/gtk-2.0.m4: Remove reference to editing
pkg-config script. (From Jim Gettys)
2002-05-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
composite_child blurb.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs. (#73093)
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
gtk_text_layout_invalidate_cache instead of cut-and-paste
(gtk_text_layout_real_invalidate): always invalidate cache, even
if the line has no stored line data. #78573
* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
gtk_text_view_ensure_layout, #77388
(gtk_text_view_get_iter_at_location): ditto
(gtk_text_view_get_line_yrange): ditto
(gtk_text_view_get_line_at_y): ditto
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
something to "prev" so that removing tag info succeeds.
Part of #77301
* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
unrefs the tag table first, so that the btree is in a consistent
state when we're removing tags from it.
* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
all tags in the tag table out of the buffer. #77301
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
2002-04-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
division by zero. (#77820)
Sat Apr 27 15:48:49 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(Apr 26):
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c
* tests/testtreeview.c: quit the main loop when the window is
destroyed. Removed compiler warnings about wrong format in printf().
Fri Apr 26 00:00:00 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 26:
(Apr 25):
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
resort if we're already in 'unsorted' state, and update the docs
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes #74806).
(Also from Apr 25, fixes #74206):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
(_gtk_tree_view_column_get_editable_cell): remove a space which made
the code look ugly
(_gtk_tree_view_column_count_special_cells): new function,
(gtk_tree_view_column_cell_process_action): if there's only one
activatable cell, the whole column will activate that renderer.
(Apr 24):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes #79632).
Thu Apr 25 20:24:37 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
requisition.height, not allocation.height, as width of submenu
indicator. (#75948)
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/gtktextiter.c:
* gtk/gtktreemodelsort.c:
* gtk/gtktextview.c: Documentation fixes. (#62359, #68404, #57929)
2002-04-22 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
gtk_entry_get_public_chars.
Fixes #79532 (Reported by Ovidiu Gheorghioiu)
2002-04-21 Alexander Larsson <alla@lysator.liu.se>
Merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Save x and y in window_private.
* gtk/gtkplug.c (_gtk_plug_add_to_socket):
Move plug window outside the visible area to avoid flashing until
the first size_allocate.
Sat Apr 20 16:49:26 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
if window is a GdkWindow,
(gdk_bitmap_create_from_data): ditto,
(gdk_pixmap_create_from_data): ditto
Sat Apr 20 01:54:59 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 20 2002:
(All from Apr 19):
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes #72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)
* gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
if tree_view->priv->edited_column != NULL (fixes #76066)
(This patch fixes #50310):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 16:49:01 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 19 2002:
(From Apr 16):
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
(From Apr 17):
* gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs
(From Apr 18):
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): so this function
was completely broken. Fix it and improve readability.
(From Apr 19):
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
2002-04-18 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
thanks to David Sterba for noticing.
* gtk/gtkmain.h
* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
Win32 whether compiled with -fnative-struct or not. Unfortunately
this wan't noticed until now. So, from now on, check some other
struct, too, for which the use of -fnative-struct still
matters. GtkBox is one such.
Mon Apr 15 15:41:56 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcontainer.c (gtk_container_focus): include internal
children when doing focus.
(gtk_container_get_all_children): new static function to include
internal children when making a list of them.
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
+633
View File
@@ -1,3 +1,636 @@
Thu May 23 17:19:16 2002 Owen Taylor <otaylor@redhat.com>
* Released 2.0.3.
* gtk/gtktooltips.c (gtk_tooltips_event_handler): Disable
tooltips for menu items with submenus .. they still
don't really work properly.
* gtk/gtkwindow.c (gtk_window_move_resize): Clear
initial_pos_set even if it only causes a move, not
a resize as well.
* configure.in: GTK+-2.0.3, interface age, binary age 3.
* NEWS: Updated.
2002-05-23 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Use correct path to the loaders and immodules
directories (GTK_BINARY_VERSION, not GTK_VERSION).
Wed May 22 16:12:38 2002 Owen Taylor <otaylor@redhat.com>
* configure.in: Require autoconf-2.52 explicitely,
since otherwise Debian will process it with 2.13 (ugh!).
Wed May 22 12:29:20 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkscrolledwindow.c (gtk_scrolled_window_init): remove
GTK_RESIZE_QUEUE setting.
Tue May 21 16:46:15 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_internal_connection_watch):
Fix missing dereference. (HideToshi Tajima)
Tue May 21 15:33:32 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Conditionalize
GTK_IS_PLUG() check on GDK_WINDOWING_X11. (Problem
reported by Sven Neumann)
Mon May 20 15:02:21 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdisplay-x11.c: Patch from HideToshi Tajima
to handle Xlib internal connections. (#76681)
Mon May 20 12:59:14 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Set the private LEAVE_PENDING
flag to fix problem where with menu items with
submenus, tooltips were getting stuck. (Effectively
disables tooltips for menu items with submenus.)
(Bug #75961, Soeren Sandmann)
* tests/testgtk.c: Set a tooltip on a menu item
with a submenu.
Mon May 20 11:47:59 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c: Undo an accidental revert of
fixes of May 16. (Caught by Padraig O'Briain)
* gtk/gtkctree.c (cell_size_request): Fix bug where
size request for text cells was being overwritten.
(#82264, Graham Swallow.)
2002-05-18 Matthias Clasen <maclas@gmx.de>
* configure.in: Check for endianness.
Thu May 16 19:49:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_configure_event): Only
optimize out the full configure handling if we got
a gratuitous configure event(configure_request_count == 0)
and the size didn't change.
* gtk/gtkwindow.c (gtk_window_move_resize): Use
g_message(), not g_print() for debug spew.
* gtk/gtkwindow.c (gtk_window_real_set_focus): Ref
the old and new focus widgets for the scope of
the function.
* gtk/gtksocket.c gtkplug.c: Remove various #if 0'd
bits of old code.
* gtk/gtksocket.c gtk/gtkplug.c: Enhance debug messages.
Fri May 17 14:40:24 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimmulticontext.c (gtk_im_multicontext_set_slave):
Protect against reentrancy problems by emitting
::preedit_changed at the end, fixing input context
leak. (Yao Zhang)
* modules/input/gtkimcontextxim.c (status_window_free):
Patch from Federico Mena Quintero to fix problem where
references to IMContextXIM were kept around after
module was unloaded. (#77008)
* gtk/gtkdnd.c (gtk_drag_dest_set): NULL initialize
proxy window.
Fri May 17 13:56:23 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkplug.c (gtk_plug_filter_func): Fix a missing
unref in the local/passive case. (#82067, Michael
Meeks)
* gtk/gtkplug.c (_gtk_plug_remove_from_socket): Fix
reference leak on the plug window.
* tests/testsocket.c (add_child): Fix memory leak.
* gtk/gtkdnd.c (gtk_drag_dest_site_destroy): Unref
the proxy window.
Thu May 16 18:47:29 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_show): Disable the
focus-some-one code for GtkPlug descendants.
* gtk/gtkplug.c (gtk_plug_focus_event): Eat
focus-in/out events since they can be generated
by keyboard grabs, but are spurious for an embeddded
widget. (#79196, Padraig O'Briain)
* gtk/gtksocket.c (gtk_socket_size_request): Only
pay attention to the minimum size hints, and changes
to that ... ignore the default size.
* gtk/gtksocket.c (gtk_socket_send_configure_event):
Pass in root-window relative coordinates as per
the ICCCM.
* gtk/gtksocket.c (gtk_socket_size_allocate): Send
as many synthetic configures as necessary to make
up for ConfigureRequest events we got. (#78799,
Dave Camp.)
Thu May 16 23:59:56 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreestore.c (gtk_tree_store_sort_iter_changed): set the prev
of the next node correctly, so we don't corrupt the list and cause
bad things. (fixes #71374)
Thu May 16 17:29:08 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkrbtree.c (_gtk_rbtree_remove): include missing #ifdef G_ENABLE_DEBUG
Thu May 16 15:44:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/editable_cells.c (cell_edited): Fix
typo in earlier patch.
Tue May 7 15:50:51 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
Don't filter control-shift+[non-hex].
(#80252, reported by Nalin Dahyabhai)
Thu May 16 14:51:14 2002 Owen Taylor <otaylor@redhat.com>
Fixes for #78258
* gtk/gtkrbtree.c demos/gtk-demo/editable-cells.c:
Fix some 64-bit warning problems. (Patch from Matthias
Clasen.)
* gtk/gtkrbtree.c (_gtk_rbtree_debug_spew_helper): Surround
a bunch of debug code with G_ENABLE_DEBUG.
* configure.in demos/gtk-demo/main.c: Replace
#ifndef G_OS_WIN32 with proper #ifdef HAVE_FLOCKFILE.
Thu May 16 12:56:38 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkrange.c (gtk_range_calc_layout): Fix a missed
check for division by zero. (#77820, Gareth Pearce)
Thu May 16 12:50:13 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_xsettings_notify_cb):
gdk_event_put() copies the event and setting name,
so we don't have to strdup() it here. (Fix from
Michael Meeks, #81953)
2002-05-16 Ettore Perazzoli <ettore@ximian.com>
* gtk/gtkmenu.c (gtk_menu_paint): If the menu is scrolled down or
up, and some of the widget area is empty, don't fill it in with
GTK_SHADOW_IN rectangles that make it looks strange. Fixes
#72695.
Wed May 15 18:15:45 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkdnd.c (_gtk_drag_source_handle_event): Don't
call gdk_pointer_grab() to change the cursor if we've
already ungrabbed on button release / escape.
(#80420, Dave Camp)
Wed May 15 17:12:50 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtktooltips.c: Special case menu items to
pop down on motion. (#75961)
* tests/testgtk.c (create_item_factory): Add tooltips
to the File menu.
* gtk/gtkentry.c (update_im_cursor_location): Fix
cursor locations passed to the IM context.
(#80027, Yao Zhang)
Wed May 15 16:52:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkfontsel.c: Update from contents of size entry
on focus out. (#76493, Lauris Kaplinski)
* gtk/gtkclipboard.c (selection_get_cb): Fix backwads
info/time arguments. (#80226)
Wed May 15 11:13:19 2002 Owen Taylor <otaylor@redhat.com>
* configure.in gtk/stock-icons/Makefile.am: If not
building libpng, don't rebuild gtkstockpixbufs.h
(#81819, Bill Janssen)
2002-05-15 Jacob Berkman <jacob@ximian.com>
* demos/gtk-demo/Makefile.am: run perl on the file, since it's not
executable
Tue May 14 19:53:15 2002 Owen Taylor <otaylor@redhat.com>
* demos/gtk-demo/geninclude.pl.in configure.in:
Subsitute in @PERL@ instead of hardcoded
/usr/bin/perl. (#78355, Gareth Pearce. Fix based
on patch from Matthias Clasen)
* gdk/Makefile.am: Patch from Daniel Elstner to use glib-mkenums
instead of makeenums.pl.
* gdk/{x11,linux-fb,win32}/Makefile.am: Hack to
get gdkenumtypes.h built first.
Tue May 14 18:41:58 2002 Owen Taylor <otaylor@redhat.com>
* gtk/stock-icons/Makefile.am (gtkstockpixbufs.h):
Remove the result file on error. (#79929, David
Highley)
* gtk/gtkoptionmenu.c (gtk_option_menu_remove_menu):
If the menu is currently active, cancel it before
setting the new menu. (#79162, Jonathan Blandford.)
Tue May 14 18:13:10 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdnd-x11.c (gdk_window_cache_filter): Fix
prepending at the start of the list. (#56349,
Thomas Leonard.)
* gtk/gtksignal.h (gtk_signal_disconnect_by_func): Add
explicit casts to GSignalMatchType for C++ compatibility.
(#77601)
Tue May 14 18:02:37 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwindow.c (gtk_window_realize): Fix
frame_right/frame_top screwup. (Detlef Reichl,
#78111)
* gtk/Makefile.am (install-data-local): Use
$(INSTALL_DATA) not $(INSTALL) when installing
theme files. (#77094, Ben Liblit)
Tue May 14 17:30:57 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkctree.c gtk/gtkclist.c: Fix format of
selection data to be 8 rather than GTK_TYPE_POINTER.
(#79751, James Henstridge)
* gtk/gtkmenu.c (gtk_menu_key_press): Call
gtk_accelerator_valid() with cleaned up
accel_key/accel_mods, not the raw values from
the event. (#80513, Havoc Pennington.)
* gtk/gtkmenu.c (gtk_menu_set_tearoff_state): Remove
some dead code that set the tearoff window not
resizable and removed decorations. (#80235)
Tue May 14 16:44:09 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtklabel.c (gtk_label_ensure_layout): Set
the width of the layout to the actual wrap width
(our requisition) not the width we set when calculating
the width. This results in the lines being justified
within the correct area. (#79157, Anders Carlsson)
* gtk/gtkaccelgroup.c gtk/gtkmarshelers.list: Corrected
registered parameter types of "accel_activate" and
"accel_changed" signals. (Patch from Murray Cumming, #78798)
* gtk/gtkrc.c (gtk_rc_make_default_dir): Switch
binary-version and type to correspond to the
current ordering in _gtk_get_module_path.
(#78746, Sergey Kuzminov)
* gtk/gtkrc.c (gtk_rc_get_module_dir): Add docs
pointing to the GTK_PATH documentation.
* gtk/Makefile.am (uninstall-local): Delete
key themes as well. (#81286, Kristian Rietveld.)
Tue May 14 15:09:33 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkkeys-x11.c: Try adding a #ifndef/#define
for XkbKeySymEntry to make up for OSF broken
XKB extension. (#77819, Gareth Pearce)
* gtk/gtklayout.c: Clamp the upper values in response
to ::size-allocate if necessary. (#81290, Christophe Saout)
* gtk/gtkcombo.c (gtk_combo_entry_focus_out): Handle
combo being destroyed before idle fires.
(#81396, Timo Sirainen)
Tue May 14 11:21:19 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_event_translate):
Discard configure events from SubstructureNotify.
(#81760, Rich Burridge)
* gtk/gtkfontsel.c (cmp_families): Use g_utf8_strcoll(), not
strcmp().
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): Clamp
width of child allocation to >= 1. (Fixes warnings from
#77639, Martin Schulze)
Mon May 13 23:19:20 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action):
PACK_END cells support CELL_ACTION_EVENT too now ...
2002-05-10 Daniel Elstner <daniel.elstner@gmx.net>
* gtk/gtktreemodel.c: #define INITIALIZE_TREE_ITER(),
which zeroes out all GtkTreeIter fields. (#81380)
(gtk_tree_model_get_iter): Use it.
(gtk_tree_model_iter_children): ditto
(gtk_tree_model_iter_nth_child): ditto
(gtk_tree_model_iter_parent): ditto
Thu May 9 23:33:32 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): fixup comment,
so it doesn't screw the docs.
2002-05-08 Michael Natterer <mitch@gimp.org>
* configure.in: fixed yesterdays fix for cross compiling: simply
check the variable "cross_compiling" which gets set by autoconf.
Tue May 7 18:36:03 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Check for selection_atom, not property name atom.
2002-05-07 Michael Natterer <mitch@gimp.org>
* configure.in: added a new conditional CROSS_COMPILING which
indicates ($build != $host). If it is set, look for
gdk-pixbuf-csource in PATH. Error out if it was not found.
* gtk/stock-icons/Makefile.am: use the gdk-pixbuf-csource found at
configure time if CROSS_COMPILING is set, use the one which was
just built otherwise.
2002-05-07 Anders Carlsson <andersca@gnu.org>
* gdk/x11/xsettings-client.c (xsettings_client_process_event):
Only process manager events with the correct atom.
Tue May 7 00:50:20 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(May 6):
* gtk/gtktreeview.c (gtk_tree_view_map_expanded_rows_helper): call
func on current node before the child nodes.
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow):
unset user_data before destroying the window. (fixes #80065).
Tue May 7 00:18:45 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_start_editing): add neighbor
size hack to align editable widget.
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_pack_end): use g_new0
here instead of g_new (this triggered some bad crash),
(gtk_tree_view_column_cell_is_visible): add missing assert
2002-05-07 Matthias Clasen <maclas@gmx.de>
Fix for #79248, merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
(gdk_window_set_events): Always select for property notify for
maintaining window state.
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Only propagate
property notifys if they were selected by gdk_window_set_events.
Mon May 6 11:48:08 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
* m4macros/gtk-2.0.m4: save CFLAGS/LIBS properly when
compiling "what went wrong" test case. (#79329)
* m4macros/gtk-2.0.m4: Remove reference to editing
pkg-config script. (From Jim Gettys)
2002-05-02 Matthias Clasen <maclas@gmx.de>
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Typo fix.
* gtk/gtkwidget.c (gtk_widget_class_init): Correct the
composite_child blurb.
* gtk/gtknotebook.c (gtk_notebook_set_show_border): Clarify docs. (#73093)
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_real_free_line_data): use
gtk_text_layout_invalidate_cache instead of cut-and-paste
(gtk_text_layout_real_invalidate): always invalidate cache, even
if the line has no stored line data. #78573
* gtk/gtktextview.c (gtk_text_view_get_iter_location): add call to
gtk_text_view_ensure_layout, #77388
(gtk_text_view_get_iter_at_location): ditto
(gtk_text_view_get_line_yrange): ditto
(gtk_text_view_get_line_at_y): ditto
2002-04-30 Havoc Pennington <hp@redhat.com>
* gtk/gtktextbtree.c (gtk_text_btree_remove_tag_info): assign
something to "prev" so that removing tag info succeeds.
Part of #77301
* gtk/gtktextbtree.c (_gtk_text_btree_unref): reorder so that it
unrefs the tag table first, so that the btree is in a consistent
state when we're removing tags from it.
* gtk/gtktexttagtable.c (_gtk_text_tag_table_remove_buffer): strip
all tags in the tag table out of the buffer. #77301
2002-04-29 Alex Larsson <alexl@redhat.com>
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors):
Use tmp also if foreground is set.
Sun Apr 28 22:43:55 2002 Jonathan Blandford <jrb@gnome.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_set_sort_func): Fix
so that you can set a new sort func.
2002-04-27 Matthias Clasen <maclas@gmx.de>
* gtk/gtkrange.c (gtk_range_calc_layout): Avoid a possible
division by zero. (#77820)
Sat Apr 27 15:48:49 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD:
(Apr 26):
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c
* tests/testtreeview.c: quit the main loop when the window is
destroyed. Removed compiler warnings about wrong format in printf().
Fri Apr 26 00:00:00 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 26:
(Apr 25):
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_reset_default_sort_func):
resort if we're already in 'unsorted' state, and update the docs
* gtk/gtktreeview.c (gtk_tree_view_search_iter): make the search
dialog not scroll horizontally (prolly fixes #74806).
(Also from Apr 25, fixes #74206):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_count_special_cells
* gtk/gtktreeviewcolumn.c (_gtk_tree_view_column_has_editable_cell),
(_gtk_tree_view_column_get_editable_cell): remove a space which made
the code look ugly
(_gtk_tree_view_column_count_special_cells): new function,
(gtk_tree_view_column_cell_process_action): if there's only one
activatable cell, the whole column will activate that renderer.
(Apr 24):
* gtk/gtktreeview.c (gtk_tree_view_stop_editing): temporarily set
->priv->edited_column to NULL. Pleas read the comment in this
function for an explanation (fixes #79632).
Thu Apr 25 20:24:37 2002 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): use the child's
requisition.height, not allocation.height, as width of submenu
indicator. (#75948)
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/gtktextiter.c:
* gtk/gtktreemodelsort.c:
* gtk/gtktextview.c: Documentation fixes. (#62359, #68404, #57929)
2002-04-22 Anders Carlsson <andersca@gnu.org>
* gtk/gtkentry.c (gtk_entry_drag_data_get): Use
gtk_entry_get_public_chars.
Fixes #79532 (Reported by Ovidiu Gheorghioiu)
2002-04-21 Alexander Larsson <alla@lysator.liu.se>
Merged from HEAD:
* gdk/x11/gdkwindow-x11.c (gdk_window_reparent):
Save x and y in window_private.
* gtk/gtkplug.c (_gtk_plug_add_to_socket):
Move plug window outside the visible area to avoid flashing until
the first size_allocate.
Sat Apr 20 16:49:26 2002 Kristian Rietveld <kris@gtk.org>
* gdk/x11/gdkpixmap-x11.c (gdk_pixmap_new): replace GDK_IS_WINDOW
with GDK_IS_DRAWABLE in the assert, only check GDK_WINDOW_DESTROYED
if window is a GdkWindow,
(gdk_bitmap_create_from_data): ditto,
(gdk_pixmap_create_from_data): ditto
Sat Apr 20 01:54:59 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 20 2002:
(All from Apr 19):
* gtk/gtktreeview.c (gtk_tree_view_size_allocate): subtract
TREE_VIEW_HEADER_HEIGHT from allocation->height to get the real
size for the tree (fixes #72729),
(gtk_tree_view_real_start_editing): correct cell_area->y for
scrolling due to gtk_tree_view_real_set_cursor (fixes #75687)
* gtk/gtktreeview.c (gtk_tree_view_row_changed): cancel editing
if tree_view->priv->edited_column != NULL (fixes #76066)
(This patch fixes #50310):
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_autosize
* gtk/gtktreeview.c: privately export _gtk_tree_view_column_autosize,
and add a small note about that function,
(gtk_tree_view_button_press): check for double click and
"not having an autosize" column before autosizing the column,
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_min_width):
call _gtk_tree_view_column_autosize to update autosized column width
(gtk_tree_view_column_set_max_width): ditto
Fri Apr 19 16:49:01 2002 Kristian Rietveld <kris@gtk.org>
Merge TreeView fixes from HEAD up to Apr 19 2002:
(From Apr 16):
* gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check
->priv->cursor and ->priv->anchor rowrefs before removing
node->children from the rbtree. Also check the
->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs
(I think I really need to rename those two someday).
(From Apr 17):
* gtk/gtktreestore.c (gtk_tree_store_insert_before): fix docs
(From Apr 18):
* gtk/gtktreemodelsort.c
(gtk_tree_model_sort_convert_path_to_child_path): so this function
was completely broken. Fix it and improve readability.
(From Apr 19):
* gtk/gtktreeprivate.h, gtk/gtktreeview.c: rename
last_single_clicked{,_2} to last_button_press{,_2}, as the latter
is a more sane name.
* gtk/gtktreeview.c (gtk_tree_view_button_press): use ->priv->anchor
instead of ->priv->cursor, check for the anchor at another place, as
you can go in edit mode without having an anchor.
2002-04-18 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf/Makefile.am (uninstall-libtool-import-lib)
* gdk/Makefile.am (uninstall-libtool-import-lib): Fix typo,
thanks to David Sterba for noticing.
* gtk/gtkmain.h
* gtk/gtkmain.c (gtk_init_abi_check, gtk_init_check_abi_check): In
GTK+ 2.0 the GtkWindow struct actually is the same size in gcc on
Win32 whether compiled with -fnative-struct or not. Unfortunately
this wan't noticed until now. So, from now on, check some other
struct, too, for which the use of -fnative-struct still
matters. GtkBox is one such.
Mon Apr 15 15:41:56 2002 Jonathan Blandford <jrb@redhat.com>
* gtk/gtkcontainer.c (gtk_container_focus): include internal
children when doing focus.
(gtk_container_get_all_children): new static function to include
internal children when making a list of them.
Sun Apr 14 16:56:59 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeprivate.h: add _gtk_tree_view_column_get_editable_cell and
+2 -2
View File
@@ -20,8 +20,8 @@ GTK+ requires the following packages:
Simple install procedure
========================
% gzip -cd gtk+-2.0.2.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.0.2 # change to the toplevel directory
% gzip -cd gtk+-2.0.3.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.0.3 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK
[ Become root if necessary ]
+1
View File
@@ -13,6 +13,7 @@ EXTRA_DIST = \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
ChangeLog.pre-1-2 \
ChangeLog.pre-2-0 \
README.cvs-commits \
README.win32 \
README.nanox \
+27
View File
@@ -1,3 +1,30 @@
Overview of Changes in GTK+ 2.0.3
=================================
* GtkTreeView fixes (Jonathan Blandford, Kristian Rietveld, Daniel Elstner)
* Improve GdkRGB support for low color depths (Tor Lillqvist).
* Tweak F10 behavior to focus GtkMenuBar. (Owen Taylor)
* Include internal children when focusing. (Jonathan)
* Win32 fixes (Tor Lillqvist, David Sterba)
* Allow use of a pixmap as the drawable in gdk_pixmap_new(). (Kristian)
* GdkPixbuf fixes (Matthias Clasen, Michael Natterer, Federico Mena Quintero)
* GtkMenu fixes. (Soeren Sandmann)
* Find gdk-pixbuf-csource when cross-compiling. (Michael Natterer)
* Misc input-method related fixes (Yao Zhang, Federico)
* Fix stuck grab during DND. (Dave Camp, Owen)
* Remove in-bevel from scrolled-offscreen menus. (Ettore Perazzoli)
* Various plug/socket fixes (Owen, Padraig O'Briain, Dave Camp,
Michael Meeks)
* Handle Xlib internal connections (HideToshi Tajima)
* Many miscellaneous bug fixes.
Other contributors: Jacob Berkman, Abigail Brady, Rich Burridge,
Anders Carlsson, Murray Cumming, Nalin Dahyabhai, James Henstridge,
David Highley, Ben Liblitt, Tim Janik, Bill Jannsen, Lauris Kaplinski,
Sergey Kuzminov, Alex Larsson, Sven Neumann, Havoc Pennington, Gareth Pearce,
Simon Floery, Thomas Leonard, Detlef Reichl, Martin Schulze, Christophe Saout,
Timo Sirainen, Graham Swallow.
Overview of Changes in GTK+ 2.0.2
=================================
+1 -1
View File
@@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 2.0.2. GTK+ is a multi-platform toolkit for
This is GTK+ version 2.0.3. GTK+ is a multi-platform toolkit for
creating graphical user interfaces. Offering a complete set of widgets,
GTK+ is suitable for projects ranging from small one-off projects to
complete application suites.
+27 -5
View File
@@ -1,3 +1,6 @@
# require autoconf 2.52
AC_PREREQ(2.52)
# Process this file with autoconf to produce a configure script.
AC_INIT(gdk/gdktypes.h)
@@ -29,9 +32,9 @@ GLIB_AC_DIVERT_BEFORE_HELP([
#
GTK_MAJOR_VERSION=2
GTK_MINOR_VERSION=0
GTK_MICRO_VERSION=2
GTK_INTERFACE_AGE=2
GTK_BINARY_AGE=2
GTK_MICRO_VERSION=3
GTK_INTERFACE_AGE=3
GTK_BINARY_AGE=3
GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
dnl This is the X.Y used in -lgtk-FOO-X.Y
GTK_API_VERSION=2.0
@@ -310,7 +313,7 @@ AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
# define a MAINT-like variable REBUILD which is set if Perl
# and awk are found, so autogenerated sources can be rebuilt
AC_CHECK_PROGS(PERL, perl5 perl)
AC_PATH_PROGS(PERL, perl5 perl)
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)
@@ -323,7 +326,7 @@ if test "x$enable_rebuilds" = "xyes" && \
fi
AC_SUBST(REBUILD)
AC_CHECK_FUNCS(lstat mkstemp)
AC_CHECK_FUNCS(lstat mkstemp flockfile)
# sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
AC_MSG_CHECKING(for sigsetjmp)
@@ -500,6 +503,8 @@ AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"
# check for bytesex stuff
AC_C_BIGENDIAN
# Checks for header files.
AC_HEADER_STDC
@@ -736,6 +741,12 @@ dnl Test for libpng
*** from CVS.])
fi
REBUILD_PNGS=\#
if test -z "$LIBPNG"; then
REBUILD_PNGS=
fi
AC_SUBST(REBUILD_PNGS)
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
@@ -850,6 +861,16 @@ fi
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
if test $cross_compiling = yes; then
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
if test x$GDK_PIXBUF_CSOURCE = xno; then
AC_MSG_ERROR(Could not find a gdk-pixbuf-csource in your PATH)
fi
fi
GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
@@ -1474,6 +1495,7 @@ build/win32/Makefile
build/win32/dirent/Makefile
demos/Makefile
demos/gtk-demo/Makefile
demos/gtk-demo/geninclude.pl
tests/Makefile
docs/Makefile
docs/reference/Makefile
+1 -1
View File
@@ -55,7 +55,7 @@ EXTRA_DIST = \
$(IMAGEFILES)
demos.h: $(demos) geninclude.pl
(cd $(srcdir) && ./geninclude.pl $(demos) > demos.h)
(cd $(srcdir) && $(PERL) ./geninclude.pl $(demos) > demos.h)
gtk_demo_SOURCES = \
$(demos) \
+1 -1
View File
@@ -158,7 +158,7 @@ cell_edited (GtkCellRendererText *cell,
gtk_tree_model_get_iter (model, &iter, path);
switch ((gint) column)
switch (GPOINTER_TO_INT (column))
{
case COLUMN_NUMBER:
{
-163
View File
@@ -1,163 +0,0 @@
#!/usr/bin/perl -w
print <<EOT;
typedef GtkWidget *(*GDoDemoFunc) (void);
typedef struct _Demo Demo;
struct _Demo
{
gchar *title;
gchar *filename;
GDoDemoFunc func;
Demo *children;
};
EOT
for $file (@ARGV) {
my %demo;
($basename = $file) =~ s/\.c$//;
open INFO_FILE, $file or die "Cannot open '$file'\n";
$title = <INFO_FILE>;
$title =~ s@^\s*/\*\s*@@;
$title =~ s@\s*$@@;
close INFO_FILE;
print "GtkWidget *do_$basename (void);\n";
push @demos, {"title" => $title, "file" => $file,
"func" => "do_$basename"};
}
# generate a list of 'parent names'
foreach $href (@demos) {
if ($href->{"title"} =~ m|^([\w\s]+)/[\w\s]+$|) {
my $parent_name = $1;
my $do_next = 0;
# parent detected
if (defined @parents) {
foreach $foo (@parents) {
if ($foo eq $parent_name) {
$do_next = 1;
}
}
if ($do_next) {
next;
}
}
push @parents, $parent_name;
$tmp = (defined @child_arrays)?($#child_arrays + 1):0;
push @child_arrays, "child$tmp";
push @demos, {"title" => $parent_name, "file" => "NULL",
"func" => "NULL"};
}
}
if (defined @parents) {
$i = 0;
for ($i = 0; $i <= $#parents; $i++) {
$first = 1;
print "\nDemo ", $child_arrays[$i], "[] = {\n";
$j = 0;
for ($j = 0; $j <= $#demos; $j++) {
$href = $demos[$j];
if (!defined $demos[$j]) {
next;
}
if ($demos[$j]{"title"} =~ m|^$parents[$i]/([\w\s]+)$|) {
if ($first) {
$first = 0;
} else {
print ",\n";
}
print qq ( { "$1", "$demos[$j]{file}", $demos[$j]{func}, NULL });
# hack ... ugly
$demos[$j]{"title"} = "foo";
}
}
print ",\n";
print qq ( { NULL } );
print "\n};\n";
}
}
# sort @demos
@demos_old = @demos;
@demos = sort {
$a->{"title"} cmp $b->{"title"};
} @demos_old;
# sort the child arrays
if (defined @child_arrays) {
for ($i = 0; $i <= $#child_arrays; $i++) {
@foo_old = @{$child_arrays[$i]};
@{$child_arrays[$i]} = sort {
$a->{"title"} cmp $b->{"title"};
} @foo_old;
}
}
# toplevel
print "\nDemo testgtk_demos[] = {\n";
$first = 1;
foreach $href (@demos) {
$handled = 0;
# ugly evil hack
if ($href->{title} eq "foo") {
next;
}
if ($first) {
$first = 0;
} else {
print ", \n";
}
if (defined @parents) {
for ($i = 0; $i <= $#parents; $i++) {
if ($parents[$i] eq $href->{title}) {
if ($href->{file} eq 'NULL') {
print qq ( { "$href->{title}", NULL, $href->{func}, $child_arrays[$i] });
} else {
print qq ( { "$href->{title}", "$href->{file}", $href->{func}, $child_arrays[$i] });
}
$handled = 1;
last;
}
}
}
if ($handled) {
next;
}
print qq ( { "$href->{title}", "$href->{file}", $href->{func}, NULL });
}
print ",\n";
print qq ( { NULL } );
print "\n};\n";
exit 0;
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!@PERL@ -w
print <<EOT;
typedef GtkWidget *(*GDoDemoFunc) (void);
+3 -3
View File
@@ -86,7 +86,7 @@ read_line (FILE *stream, GString *str)
{
int n_read = 0;
#ifndef G_OS_WIN32
#ifdef HAVE_FLOCKFILE
flockfile (stream);
#endif
@@ -112,7 +112,7 @@ read_line (FILE *stream, GString *str)
case '\r':
case '\n':
{
#ifndef G_OS_WIN32
#ifdef HAVE_FLOCKFILE
int next_c = getc_unlocked (stream);
#else
int next_c = getc (stream);
@@ -132,7 +132,7 @@ read_line (FILE *stream, GString *str)
done:
#ifndef G_OS_WIN32
#ifdef HAVE_FLOCKFILE
funlockfile (stream);
#endif
-392
View File
@@ -1,392 +0,0 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <gtk/gtk.h>
#include <demos.h>
static GtkTextBuffer *info_buffer;
static GtkTextBuffer *source_buffer;
static gchar *current_file = NULL;
enum {
TITLE_COLUMN,
FILENAME_COLUMN,
FUNC_COLUMN,
ITALIC_COLUMN,
NUM_COLUMNS
};
gboolean
read_line (FILE *stream, GString *str)
{
int n_read = 0;
flockfile (stream);
g_string_truncate (str, 0);
while (1)
{
int c;
c = getc_unlocked (stream);
if (c == EOF)
goto done;
else
n_read++;
switch (c)
{
case '\r':
case '\n':
{
int next_c = getc_unlocked (stream);
if (!(next_c == EOF ||
(c == '\r' && next_c == '\n') ||
(c == '\n' && next_c == '\r')))
ungetc (next_c, stream);
goto done;
}
default:
g_string_append_c (str, c);
}
}
done:
funlockfile (stream);
return n_read > 0;
}
void
load_file (const gchar *filename)
{
FILE *file;
GtkTextIter start, end;
GString *buffer = g_string_new (NULL);
int state = 0;
gboolean in_para = 0;
if (current_file && !strcmp (current_file, filename))
return;
g_free (current_file);
current_file = g_strdup (filename);
gtk_text_buffer_get_bounds (info_buffer, &start, &end);
gtk_text_buffer_delete (info_buffer, &start, &end);
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
gtk_text_buffer_delete (source_buffer, &start, &end);
file = fopen (filename, "r");
if (!file)
{
g_warning ("Cannot open %s: %s\n", filename, g_strerror (errno));
return;
}
gtk_text_buffer_get_iter_at_offset (info_buffer, &start, 0);
while (read_line (file, buffer))
{
gchar *p = buffer->str;
gchar *q;
switch (state)
{
case 0:
/* Reading title */
while (*p == '/' || *p == '*' || isspace (*p))
p++;
q = p + strlen (p);
while (q > p && isspace (*(q - 1)))
q--;
if (q > p)
{
int len_chars = g_utf8_pointer_to_offset (p, q);
end = start;
g_assert (strlen (p) >= q - p);
gtk_text_buffer_insert (info_buffer, &end, p, q - p);
start = end;
gtk_text_iter_backward_chars (&start, len_chars);
gtk_text_buffer_apply_tag_by_name (info_buffer, "title", &start, &end);
start = end;
state++;
}
break;
case 1:
/* Reading body of info section */
while (isspace (*p))
p++;
if (*p == '*' && *(p + 1) == '/')
{
gtk_text_buffer_get_iter_at_offset (source_buffer, &start, 0);
state++;
}
else
{
int len;
while (*p == '*' || isspace (*p))
p++;
len = strlen (p);
while (isspace (*(p + len - 1)))
len--;
if (len > 0)
{
if (in_para)
gtk_text_buffer_insert (info_buffer, &start, " ", 1);
g_assert (strlen (p) >= len);
gtk_text_buffer_insert (info_buffer, &start, p, len);
in_para = 1;
}
else
{
gtk_text_buffer_insert (info_buffer, &start, "\n", 1);
in_para = 0;
}
}
break;
case 2:
/* Skipping blank lines */
while (isspace (*p))
p++;
if (*p)
{
p = buffer->str;
state++;
/* Fall through */
}
else
break;
case 3:
/* Reading program body */
gtk_text_buffer_insert (source_buffer, &start, p, -1);
gtk_text_buffer_insert (info_buffer, &start, "\n", 1);
break;
}
}
gtk_text_buffer_get_bounds (source_buffer, &start, &end);
gtk_text_buffer_apply_tag_by_name (info_buffer, "source", &start, &end);
}
gboolean
button_press_event_cb (GtkTreeView *tree_view,
GdkEventButton *event,
GtkTreeModel *model)
{
if (event->type == GDK_2BUTTON_PRESS)
{
GtkTreePath *path = NULL;
gtk_tree_view_get_path_at_pos (tree_view,
event->window,
event->x,
event->y,
&path,
NULL);
if (path)
{
GtkTreeIter iter;
gboolean italic;
GVoidFunc func;
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_store_get (GTK_TREE_STORE (model),
&iter,
FUNC_COLUMN, &func,
ITALIC_COLUMN, &italic,
-1);
(func) ();
gtk_tree_store_set (GTK_TREE_STORE (model),
&iter,
ITALIC_COLUMN, !italic,
-1);
gtk_tree_path_free (path);
}
gtk_signal_emit_stop_by_name (GTK_OBJECT (tree_view),
"button_press_event");
return TRUE;
}
return FALSE;
}
static void
selection_cb (GtkTreeSelection *selection,
GtkTreeModel *model)
{
GtkTreeIter iter;
GValue value = {0, };
if (! gtk_tree_selection_get_selected (selection, NULL, &iter))
return;
gtk_tree_model_get_value (model, &iter,
FILENAME_COLUMN,
&value);
load_file (g_value_get_string (&value));
g_value_unset (&value);
}
static GtkWidget *
create_text (GtkTextBuffer **buffer,
gboolean is_source)
{
GtkWidget *scrolled_window;
GtkWidget *text_view;
PangoFontDescription *font_desc;
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_SHADOW_IN);
text_view = gtk_text_view_new ();
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
*buffer = gtk_text_buffer_new (NULL);
gtk_text_view_set_buffer (GTK_TEXT_VIEW (text_view), *buffer);
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
if (is_source)
{
font_desc = pango_font_description_from_string ("Courier 10");
gtk_widget_modify_font (text_view, font_desc);
pango_font_description_free (font_desc);
}
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), !is_source);
return scrolled_window;
}
/* Technically a list, but if we do go to 80 demos, we may want to move to a tree */
static GtkWidget *
create_tree (void)
{
GtkTreeSelection *selection;
GtkCellRenderer *cell;
GtkWidget *tree_view;
GtkTreeViewColumn *column;
GtkTreeStore *model;
GtkTreeIter iter;
gint i;
model = gtk_tree_store_new_with_types (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN);
tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
gtk_tree_selection_set_type (GTK_TREE_SELECTION (selection),
GTK_TREE_SELECTION_SINGLE);
gtk_widget_set_usize (tree_view, 200, -1);
for (i=0; i < G_N_ELEMENTS (testgtk_demos); i++)
{
gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL);
gtk_tree_store_set (GTK_TREE_STORE (model),
&iter,
TITLE_COLUMN, testgtk_demos[i].title,
FILENAME_COLUMN, testgtk_demos[i].filename,
FUNC_COLUMN, testgtk_demos[i].func,
ITALIC_COLUMN, FALSE,
-1);
}
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("Widget",
cell,
"text", TITLE_COLUMN,
"italic", ITALIC_COLUMN,
NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
GTK_TREE_VIEW_COLUMN (column));
gtk_signal_connect (GTK_OBJECT (selection), "selection_changed", selection_cb, model);
gtk_signal_connect (GTK_OBJECT (tree_view), "button_press_event", GTK_SIGNAL_FUNC (button_press_event_cb), model);
return tree_view;
}
int
main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *notebook;
GtkWidget *hbox;
GtkWidget *tree;
GtkTextTag *tag;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
hbox = gtk_hbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), hbox);
tree = create_tree ();
gtk_box_pack_start (GTK_BOX (hbox), tree, FALSE, FALSE, 0);
notebook = gtk_notebook_new ();
gtk_box_pack_start (GTK_BOX (hbox), notebook, TRUE, TRUE, 0);
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
create_text (&info_buffer, FALSE),
gtk_label_new ("Info"));
gtk_notebook_append_page (GTK_NOTEBOOK (notebook),
create_text (&source_buffer, TRUE),
gtk_label_new ("Source"));
tag = gtk_text_buffer_create_tag (info_buffer, "title");
gtk_object_set (GTK_OBJECT (tag),
"font", "Sans 18",
NULL);
tag = gtk_text_buffer_create_tag (info_buffer, "source");
gtk_object_set (GTK_OBJECT (tag),
"font", "Courier 10",
"pixels_above_lines", 0,
"pixels_below_lines", 0,
NULL);
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
gtk_widget_show_all (window);
load_file (testgtk_demos[0].filename);
gtk_main ();
return 0;
}
+17
View File
@@ -1,3 +1,20 @@
2002-04-24 Matthias Clasen <maclas@gmx.de>
Merged from HEAD:
* gtk/tmpl/gtksocket.sgml:
* gtk/tmpl/gtkdrawingarea.sgml:
* gtk/tmpl/gtktreemodel.sgml:
* gtk/tmpl/gtkradiomenuitem.sgml:
* gtk/tmpl/gtkwidget.sgml:
* gtk/tmpl/gtkdialog.sgml:
* gdk-pixbuf/tmpl/gdk-pixbuf-loader.sgml:
* gtk/text_widget.sgml:
* gtk/tree_widget.sgml:
* gtk/gtk-sections.txt:
* gdk/tmpl/properties.sgml: Documentation fixes. (#79001, #67818,
#79080, #78661, #78392, #75588, #72312, #74439)
Tue Mar 26 15:41:49 2002 Owen Taylor <otaylor@redhat.com>
* gtk/building.sgml: Add a mention of running ldconfig.
@@ -10,7 +10,8 @@ Application-driven progressive image loading.
process of loading an image, by letting them send the image data
directly to the loader instead of having the loader read the data
from a file. Applications can use this functionality instead of
gdk_pixbuf_new_from_file() when they need to parse image data in
gdk_pixbuf_new_from_file() or gdk_pixbuf_animation_new_from_file()
when they need to parse image data in
small chunks. For example, it should be used when reading an
image from a (potentially) slow network connection, or when
loading an extremely large file.
@@ -47,31 +48,18 @@ Application-driven progressive image loading.
<title>Loading an animation</title>
<para>
Loading an animation is a little more complex then loading an
image. In addition to the above signals, there is also a "<link
linkend="GdkPixbufLoader-frame-done">frame_done</link>" signal,
as well as an "<link
linkend="GdkPixbufLoader-animation-done">animation_done</link>"
signal. The first lets the application know that it is dealing
with an animation, instead of a static image. It also passes a
#GdkPixbufFrame in the signal. As before, if you want to keep
the frame, you need to ref it. Once the first "<link
linkend="GdkPixbufLoader-frame-done">frame_done</link>" signal
Loading an animation is almost as easy as loading an
image. Once the first "<link
linkend="GdkPixbufLoader-area-prepared">area_prepared</link>" signal
has been emitted, you can call gdk_pixbuf_loader_get_animation()
to get the #GdkPixbufAnimation struct. Each subsequent frame
goes through a similar lifecycle. For example "<link
linkend="GdkPixbufLoader-area-prepared">area_prepared</link>" is
re-emitted. Then "<link
linkend="GdkPixbufLoader-area-updated">area_updated</link>" is
emitted as many times as necessary. Finally, "<link
linkend="GdkPixbufLoader-animation-done">animation_done</link>"
is emitted as soon as all frames are done.
to get the #GdkPixbufAnimation struct and gdk_pixbuf_animation_get_iter()
to get an #GdkPixbufAnimationIter for displaying it.
</para>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
gdk_pixbuf_new_from_file()
gdk_pixbuf_new_from_file(), gdk_pixbuf_animation_new_from_file()
</para>
<!-- ##### FUNCTION gdk_pixbuf_loader_new ##### -->
+2 -2
View File
@@ -244,10 +244,10 @@ Changes the contents of a property on a window.
@window: a #GdkWindow.
@property: the property to change.
@type: the new type for the property. If @mode is
%GDK_PROP_MODE_REPLACE or %GDK_PROP_MODE_APPEND, then this
%GDK_PROP_MODE_PREPEND or %GDK_PROP_MODE_APPEND, then this
must match the existing type or an error will occur.
@format: the new format for the property. If @mode is
%GDK_PROP_MODE_REPLACE or %GDK_PROP_MODE_APPEND, then this
%GDK_PROP_MODE_PREPEND or %GDK_PROP_MODE_APPEND, then this
must match the existing format or an error will occur.
@mode: a value describing how the new data is to be combined
with the current data.
+1
View File
@@ -245,6 +245,7 @@ the @window_at_pointer function in #GdkPointerHooks. It will be used
when GDK gets multihead support.
</para>
@parent_instance:
<!-- ##### FUNCTION gdk_window_new ##### -->
<para>
+1
View File
@@ -3447,6 +3447,7 @@ gtk_vseparator_get_type
<FILE>gtkwidget</FILE>
<TITLE>GtkWidget</TITLE>
GtkWidget
GtkWidgetClass
GtkWidgetFlags
GTK_WIDGET_TYPE
GTK_WIDGET_STATE
+3 -2
View File
@@ -162,7 +162,7 @@ font and foreground color &mdash use standard
functions such as
<link linkend="gtk-widget-modify-font">gtk_widget_modify_font()</link>
or
<link linkend="gtk-widget-modify-fg">gtk_widget_modify_fg()</link>.
<link linkend="gtk-widget-modify-fg">gtk_widget_modify_text()</link>.
For other attributes there are dedicated methods on
<link linkend="GtkTextView">GtkTextView</link> such as
<link linkend="gtk-text-view-set-tabs">gtk_text_view_set_tabs()</link>.
@@ -170,6 +170,7 @@ For other attributes there are dedicated methods on
<informalexample><programlisting>
GtkWidget *view;
GtkTextBuffer *buffer;
GtkTextIter start, end;
PangoFontDescription *font_desc;
GdkColor color;
GtkTextTag *tag;
@@ -187,7 +188,7 @@ For other attributes there are dedicated methods on
/* Change default color throughout the widget */
gdk_color_parse ("green", &amp;color);
gtk_widget_modify_fg (view, GTK_STATE_NORMAL, &amp;color);
gtk_widget_modify_text (view, GTK_STATE_NORMAL, &amp;color);
/* Change left margin throughout the widget */
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (view), 30);
+5
View File
@@ -157,3 +157,8 @@ box.
</para>
<!-- ##### ARG GtkButtonBox:secondary ##### -->
<para>
</para>
+25
View File
@@ -382,3 +382,28 @@ how to allocate space for children, equally or variably. Refers to
the <structfield>homogeneous</structfield> field of #GtkBox-struct.
</para>
<!-- ##### ARG GtkBox:expand ##### -->
<para>
</para>
<!-- ##### ARG GtkBox:fill ##### -->
<para>
</para>
<!-- ##### ARG GtkBox:padding ##### -->
<para>
</para>
<!-- ##### ARG GtkBox:pack-type ##### -->
<para>
</para>
<!-- ##### ARG GtkBox:position ##### -->
<para>
</para>
+1 -1
View File
@@ -82,7 +82,7 @@ void quick_message (gchar *message) {
dialog = gtk_dialog_new_with_buttons ("Message",
main_application_window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_BUTTON_OK,
GTK_STOCK_OK,
GTK_RESPONSE_NONE,
NULL);
label = gtk_label_new (message);
+2 -2
View File
@@ -53,7 +53,7 @@ that drawing is implicitly clipped to the exposed area.
<title>Simple <structname>GtkDrawingArea</structname> usage.</title>
<programlisting>
gboolean
expose_event_callback (GdkWidget *widget, GdkEventExpose *event, gpointer data)
expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
gdk_draw_arc (widget->window,
widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
@@ -64,7 +64,7 @@ expose_event_callback (GdkWidget *widget, GdkEventExpose *event, gpointer data)
return TRUE;
}
[...]
GtkWidget *drawing_area = gtk_drawing_area_new (<!>);
GtkWidget *drawing_area = gtk_drawing_area_new (<!-- -->);
gtk_widget_set_size_request (drawing_area, 100, 100);
g_signal_connect (G_OBJECT (drawing_area), "expose_event",
G_CALLBACK (expose_event_callback), NULL);
+10
View File
@@ -166,3 +166,13 @@ Moves a child of a #GtkFixed container to the given position.
@has_window:
<!-- ##### ARG GtkFixed:x ##### -->
<para>
</para>
<!-- ##### ARG GtkFixed:y ##### -->
<para>
</para>
+10
View File
@@ -171,3 +171,13 @@ Layout width, see gtk_layout_set_size()
Layout height, see gtk_layout_set_size()
</para>
<!-- ##### ARG GtkLayout:x ##### -->
<para>
</para>
<!-- ##### ARG GtkLayout:y ##### -->
<para>
</para>
+30
View File
@@ -496,3 +496,33 @@ Whether the popup menu for switching pages is enabled.
whether the tabs must have all the same size.
</para>
<!-- ##### ARG GtkNotebook:tab-label ##### -->
<para>
</para>
<!-- ##### ARG GtkNotebook:menu-label ##### -->
<para>
</para>
<!-- ##### ARG GtkNotebook:position ##### -->
<para>
</para>
<!-- ##### ARG GtkNotebook:tab-expand ##### -->
<para>
</para>
<!-- ##### ARG GtkNotebook:tab-fill ##### -->
<para>
</para>
<!-- ##### ARG GtkNotebook:tab-pack ##### -->
<para>
</para>
@@ -38,7 +38,7 @@ for(i = 0; i < 5; i++)
<listitem><para>because a radio menu item is a menu item.</para></listitem>
</varlistentry>
<varlistentry>
<term>#GtkCheckItem</term>
<term>#GtkCheckMenuItem</term>
<listitem><para>to know how to handle the check.</para></listitem>
</varlistentry>
</variablelist>
+1 -3
View File
@@ -792,11 +792,9 @@ otherwise %NULL.
<!-- ##### FUNCTION gtk_rc_get_module_dir ##### -->
<para>
Returns the directory in which GTK+ will look for
theme engines.
</para>
@Returns: The directory. (Must be freed with g_free())
@Returns:
<!-- ##### FUNCTION gtk_rc_get_im_module_path ##### -->
+13 -1
View File
@@ -25,7 +25,7 @@ have been added to its parent.
<example>
<title>Obtaining the window ID of a socket.</title>
<programlisting>
GtkWidget *socket = gtk_socket_new (<!>);
GtkWidget *socket = gtk_socket_new (<!-- -->);
gtk_widget_show (socket);
gtk_container_add (GTK_CONTAINER (parent), socket);
@@ -62,6 +62,13 @@ to be destroyed at any time when the main event loop
is running.
</para>
<para>
The communication between a #GtkSocket and a #GtkPlug follows the
<ulink url="http://www.freedesktop.org/standards/xembed.html">XEmbed</ulink>
protocol. This protocol has also been implemented in other toolkits, e.g.
<application>Qt</application>, allowing the same level of integration
when embedding a <application>Qt</application> widget in GTK or vice versa.</para>
<para>
A socket can also be used to swallow arbitrary
pre-existing top-level windows using gtk_socket_steal(),
@@ -77,6 +84,11 @@ as between a #GtkPlug and a #GtkSocket.</para>
<listitem><para>the widget that plugs into a #GtkSocket.</para></listitem>
</varlistentry>
<varlistentry>
<term><ulink url="http://www.freedesktop.org/standards/xembed.html">XEmbed</ulink></term>
<listitem><para>the XEmbed Protocol Specification.</para></listitem>
</varlistentry>
</variablelist>
</para>
+40
View File
@@ -276,3 +276,43 @@ Sets or retrieves the number of pixels of space between rows.
Whether each cell in the table should be the same size or not.
</para>
<!-- ##### ARG GtkTable:left-attach ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:right-attach ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:top-attach ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:bottom-attach ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:x-options ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:y-options ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:x-padding ##### -->
<para>
</para>
<!-- ##### ARG GtkTable:y-padding ##### -->
<para>
</para>
+2 -2
View File
@@ -168,7 +168,7 @@ enum
gchar *str_data;
gint int_data;
/* Make sure you terminate calls to gtk_tree_model_get(<!>)
/* Make sure you terminate calls to gtk_tree_model_get(<!-- -->)
* with a '-1' value
*/
gtk_tree_model_get (list_store, &amp;iter,
@@ -190,7 +190,7 @@ enum
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeView, #GtkTreeStore, #GtkListStore, #GtkTreeDnd, #GtkTreeSortable
#GtkTreeView, #GtkTreeStore, #GtkListStore, <link linkend="gtk-GtkTreeView-drag-and-drop">GtkTreeDnd</link>, #GtkTreeSortable
</para>
<!-- ##### STRUCT GtkTreeModel ##### -->
+14 -3
View File
@@ -20,14 +20,20 @@ GtkWidget
</para>
<!-- ##### STRUCT GtkWidgetClass ##### -->
<para>
</para>
<!-- ##### ENUM GtkWidgetFlags ##### -->
<para>
Tells about certain properties of the widget.
</para>
@GTK_TOPLEVEL:
widgets without a real parent, as there are #GtkWindow<!>s and
#GtkMenu<!>s have this flag set throughout their lifetime.
widgets without a real parent, as there are #GtkWindow<!-- -->s and
#GtkMenu<!-- -->s have this flag set throughout their lifetime.
Toplevel widgets always contain their own #GdkWindow.
@GTK_NO_WINDOW:
Indicative for a widget that does not provide its own #GdkWindow.
@@ -929,7 +935,12 @@ Equivalent to <literal>gtk_widget_set_style (widget, NULL)</literal>.
<!-- ##### FUNCTION gtk_widget_reset_rc_styles ##### -->
<para>
Calls gtk_widget_set_rc_style() recursively on all descendants.
Reset the styles of @widget and all descendents, so when
they are looked up again, they get the correct values
for the currently loaded RC file settings.
</para>
<para>
This function is not useful for applications.
</para>
@widget: a #GtkWidget.
+1 -1
View File
@@ -287,7 +287,7 @@ setup_tree (void)
populate_tree_model (store);
/* Create a view */
view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
/* The view now holds a reference. We can get rid of our own
* reference */
+43
View File
@@ -1,3 +1,46 @@
2002-05-22 Federico Mena Quintero <federico@ximian.com>
* io-xpm.c (pixbuf_create_from_xpm): Ahem, take the rowstride into
account!!! Fixes #82515.
[This bug is not present in the GNOME 1.4 branch as its XPM loader
does not use gdk_pixbuf_new(); rather it malloc()s a buffer with
no row padding and then uses gdk_pixbuf_new_from_data() on it.]
[IMPORTANT: The comment above is to make my life easier when
merging stuff across branches. If you make changes to gdk-pixbuf
in either branch, please include a comment in the ChangeLog that
indicates whether this should be merged into the other branch.
Thanks!]
2002-05-22 Tor Lillqvist <tml@iki.fi>
* gdk-pixbuf-io.c (get_libdir): Use GTK_BINARY_VERSION (and not
GTK_VERSION) in the path to the loaders on Win32, too.
* Makefile.am: Pass GTK_BINARY_VERSION.
2002-05-18 Matthias Clasen <maclas@gmx.de>
* io-tiff.c (tiff_image_parse): fix packing order on bigendian
systems. (#81702)
Thu May 16 15:17:30 2002 Owen Taylor <otaylor@redhat.com>
* pixops/pixops.c: Patch from Matthias Clasen to fix some typos
(#77246)
Thu May 16 15:02:46 2002 Owen Taylor <otaylor@redhat.com>
* gdk-pixdata.c (gdk_pixdata_to_csource): Fix 64-bit warning.
(#78258)
2002-05-07 Michael Natterer <mitch@gimp.org>
* gdk-pixbuf/Makefile.am: build the static pixbuf loaders
conditionally like the dynamic ones so --without-lib<foo> is
honored when building with --disable-modules. (#66867)
2002-04-11 Matthias Clasen <maclas@gmx.de>
More fixes for #77807:
+27 -14
View File
@@ -17,7 +17,7 @@ gdk_pixbuf-win32res.lo : gdk_pixbuf.rc
install-libtool-import-lib:
$(INSTALL) .libs/libgdk_pixbuf-$(GTK_API_VERSION).dll.a $(DESTDIR)$(libdir)
uninstall-libtool-import-lib:
-rm $(DESTDIR)$(libdir)/libdk_pixbuf-$(GTK_API_VERSION).dll.a
-rm $(DESTDIR)$(libdir)/libgdk_pixbuf-$(GTK_API_VERSION).dll.a
else
install-libtool-import-lib:
uninstall-libtool-import-lib:
@@ -144,33 +144,45 @@ libpixbufloader_tga_la_LIBADD = $(module_libs)
if HAVE_PNG
PNG_LIB = libpixbufloader-png.la
STATIC_PNG_LIB = libpixbufloader-static-png.la
endif
if HAVE_JPEG
JPEG_LIB = libpixbufloader-jpeg.la
STATIC_JPEG_LIB = libpixbufloader-static-jpeg.la
endif
GIF_LIB = libpixbufloader-gif.la
STATIC_GIF_LIB = libpixbufloader-static-gif.la
ICO_LIB = libpixbufloader-ico.la
STATIC_ICO_LIB = libpixbufloader-static-ico.la
RAS_LIB = libpixbufloader-ras.la
STATIC_RAS_LIB = libpixbufloader-static-ras.la
if HAVE_TIFF
TIFF_LIB = libpixbufloader-tiff.la
STATIC_TIFF_LIB = libpixbufloader-static-tiff.la
endif
XPM_LIB = libpixbufloader-xpm.la
STATIC_XPM_LIB = libpixbufloader-static-xpm.la
PNM_LIB = libpixbufloader-pnm.la
STATIC_PNM_LIB = libpixbufloader-static-pnm.la
BMP_LIB = libpixbufloader-bmp.la
STATIC_BMP_LIB = libpixbufloader-static-bmp.la
WBMP_LIB = libpixbufloader-wbmp.la
STATIC_WBMP_LIB = libpixbufloader-static-wbmp.la
XBM_LIB = libpixbufloader-xbm.la
STATIC_XBM_LIB = libpixbufloader-static-xbm.la
TGA_LIB = libpixbufloader-tga.la
STATIC_TGA_LIB = libpixbufloader-static-tga.la
if BUILD_DYNAMIC_MODULES
@@ -194,19 +206,19 @@ builtin_objs =
else
loader_LTLIBRARIES =
noinst_LTLIBRARIES = \
libpixbufloader-static-png.la \
libpixbufloader-static-jpeg.la \
libpixbufloader-static-gif.la \
libpixbufloader-static-ico.la \
libpixbufloader-static-ras.la \
libpixbufloader-static-tiff.la \
libpixbufloader-static-xpm.la \
libpixbufloader-static-pnm.la \
libpixbufloader-static-bmp.la \
libpixbufloader-static-wbmp.la \
libpixbufloader-static-xbm.la \
libpixbufloader-static-tga.la
noinst_LTLIBRARIES = \
$(STATIC_PNG_LIB) \
$(STATIC_JPEG_LIB) \
$(STATIC_GIF_LIB) \
$(STATIC_ICO_LIB) \
$(STATIC_RAS_LIB) \
$(STATIC_XPM_LIB) \
$(STATIC_TIFF_LIB) \
$(STATIC_PNM_LIB) \
$(STATIC_BMP_LIB) \
$(STATIC_WBMP_LIB) \
$(STATIC_XBM_LIB) \
$(STATIC_TGA_LIB)
builtin_objs = @INCLUDED_LOADER_OBJ@
@@ -219,6 +231,7 @@ INCLUDES = @STRIP_BEGIN@ \
-I$(top_srcdir)/gdk-pixbuf \
-I$(top_builddir)/gdk-pixbuf \
-DGTK_VERSION=\"@GTK_VERSION@\" \
-DGTK_BINARY_VERSION=\"@GTK_BINARY_VERSION@\" \
-DG_DISABLE_DEPRECATED \
-DGDK_PIXBUF_DISABLE_DEPRECATED \
@INCLUDED_LOADER_DEFINE@ \
+1 -1
View File
@@ -269,7 +269,7 @@ get_libdir (void)
if (libdir == NULL)
libdir = g_win32_get_package_installation_subdirectory
(GETTEXT_PACKAGE, dll_name, "lib\\gtk-2.0\\" GTK_VERSION "\\loaders");
(GETTEXT_PACKAGE, dll_name, "lib\\gtk-2.0\\" GTK_BINARY_VERSION "\\loaders");
return libdir;
}
+2 -2
View File
@@ -707,9 +707,9 @@ gdk_pixdata_to_csource (GdkPixdata *pixdata,
cdata.static_prefix, cdata.const_prefix, name);
APPEND (gstring, " 0x%x, /* Pixbuf magic: 'GdkP' */\n",
GDK_PIXBUF_MAGIC_NUMBER);
APPEND (gstring, " %u + %u, /* header length + pixel_data length */\n",
APPEND (gstring, " %u + %lu, /* header length + pixel_data length */\n",
GDK_PIXDATA_HEADER_LENGTH,
rle_encoded ? img_buffer_end - img_buffer : rowstride * height);
rle_encoded ? (glong)(img_buffer_end - img_buffer) : (glong)rowstride * height);
APPEND (gstring, " 0x%x, /* pixdata_type */\n",
pixdata->pixdata_type);
APPEND (gstring, " %u, /* rowstride */\n",
+15
View File
@@ -268,6 +268,21 @@ tiff_image_parse (TIFF *tiff, TiffContext *context, GError **error)
TIFFRGBAImageGet (&img, (uint32 *)pixels, width, height);
TIFFRGBAImageEnd (&img);
#ifdef WORDS_BIGENDIAN
/* Turns out that the packing used by TIFFRGBAImage depends on the host byte order... */
while (pixels < pixbuf->pixels + bytes) {
uint32 pixel = *(uint32 *)pixels;
int r = TIFFGetR(pixel);
int g = TIFFGetG(pixel);
int b = TIFFGetB(pixel);
int a = TIFFGetA(pixel);
*pixels++ = r;
*pixels++ = g;
*pixels++ = b;
*pixels++ = a;
}
#endif
G_UNLOCK (tiff_loader);
if (context)
(* context->update_func) (pixbuf, 0, 0, width, height, context->user_data);
+3 -3
View File
@@ -1209,7 +1209,7 @@ pixbuf_create_from_xpm (const gchar * (*get_buf) (enum buf_op op, gpointer handl
GError **error)
{
gint w, h, n_col, cpp;
gint cnt, xcnt, ycnt, wbytes, n, ns;
gint cnt, xcnt, ycnt, wbytes, n;
gint is_trans = FALSE;
const gchar *buffer;
gchar *name_buf;
@@ -1322,9 +1322,10 @@ pixbuf_create_from_xpm (const gchar * (*get_buf) (enum buf_op op, gpointer handl
}
wbytes = w * cpp;
pixtmp = pixbuf->pixels;
for (ycnt = 0; ycnt < h; ycnt++) {
pixtmp = pixbuf->pixels + ycnt * pixbuf->rowstride;
buffer = (*get_buf) (op_body, handle);
if ((!buffer) || (strlen (buffer) < wbytes))
continue;
@@ -1332,7 +1333,6 @@ pixbuf_create_from_xpm (const gchar * (*get_buf) (enum buf_op op, gpointer handl
for (n = 0, cnt = 0, xcnt = 0; n < wbytes; n += cpp, xcnt++) {
strncpy (pixel_str, &buffer[n], cpp);
pixel_str[cpp] = 0;
ns = 0;
color = g_hash_table_lookup (color_hash, pixel_str);
+8 -9
View File
@@ -493,13 +493,13 @@ composite_line_22_4a4 (int *weights, int n_x, int n_y,
b += ta * q0[6];
a += ta;
ta = w3 * q0[3];
r += ta * q0[0];
g += ta * q0[1];
b += ta * q0[2];
ta = w3 * q1[3];
r += ta * q1[0];
g += ta * q1[1];
b += ta * q1[2];
a += ta;
ta += w4 * q1[7];
ta = w4 * q1[7];
r += ta * q1[4];
g += ta * q1[5];
b += ta * q1[6];
@@ -881,16 +881,15 @@ scale_line_22_33 (int *weights, int n_x, int n_y,
g += w3 * q1[1];
b += w3 * q1[2];
r += w4 * q1[4];
g += w4 * q1[5];
b += w4 * q1[6];
r += w4 * q1[3];
g += w4 * q1[4];
b += w4 * q1[5];
dest[0] = (r + 0x8000) >> 16;
dest[1] = (g + 0x8000) >> 16;
dest[2] = (b + 0x8000) >> 16;
dest += 3;
x += x_step;
}
+1
View File
@@ -11,3 +11,4 @@ gdkenumtypes.[ch]
libgdk.la
gdkconfig.h
stamp-gc-h
stamp-gdkenumtypes.h
+27 -9
View File
@@ -42,7 +42,7 @@ gdk_win32_symbols = -export-symbols gdk.def
install-libtool-import-lib:
$(INSTALL) .libs/libgdk-win32-$(GTK_API_VERSION).dll.a $(DESTDIR)$(libdir)
uninstall-libtool-import-lib:
-rm $(DESTDIR)$(libdir)/libdk-win32-$(GTK_API_VERSION).dll.a
-rm $(DESTDIR)$(libdir)/libgdk-win32-$(GTK_API_VERSION).dll.a
else
install-libtool-import-lib:
uninstall-libtool-import-lib:
@@ -164,7 +164,7 @@ lib_LTLIBRARIES = $(gdktargetlib)
EXTRA_LTLIBRARIES = libgdk-x11-2.0.la libgdk-linux-fb-2.0.la libgdk-win32-2.0.la
MAINTAINERCLEANFILES =
MAINTAINERCLEANFILES = gdkenumtypes.h stamp-gdkenumtypes.h
EXTRA_HEADERS =
#
@@ -185,15 +185,33 @@ if DISABLE_EXPLICIT_DEPS
endif
#note: not gdkconfig.h
BUILT_SOURCES = stamp-gc-h @REBUILD@ gdkenumtypes.c gdkenumtypes.h
BUILT_SOURCES = stamp-gc-h @REBUILD@ gdkenumtypes.h
gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) $(srcdir)/makeenums.pl
cd $(srcdir) \
&& $(PERL) ./makeenums.pl include $(gdk_public_h_sources) > gdkenumtypes.h
# Generate built header without using automake-1.4 BUILT_SOURCES
$(libgdk_x11_2_0_la_OBJECTS) $(libgdk_linux_fb_2_0_la_OBJECTS) $(libgdk_win32_2_0_la_OBJECTS): gdkenumtypes.h
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) $(srcdir)/makeenums.pl
cd $(srcdir) \
&& $(PERL) ./makeenums.pl cfile $(gdk_public_h_sources) > gdkenumtypes.c
$(srcdir)/gdkenumtypes.h: stamp-gdkenumtypes.h
@true
stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) Makefile
( cd $(srcdir) && glib-mkenums \
--fhead "#ifndef __GDK_ENUM_TYPES_H__\n#define __GDK_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
--fprod "/* enumerations from \"@filename@\" */\n" \
--vhead "GType @enum_name@_get_type (void);\n#define GDK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
--ftail "G_END_DECLS\n\n#endif /* __GDK_ENUM_TYPES_H__ */" \
$(gdk_public_h_sources) ) >> xgen-geth \
&& (cmp -s xgen-geth $(srcdir)/gdkenumtypes.h || cp xgen-geth $(srcdir)/gdkenumtypes.h ) \
&& rm -f xgen-geth \
&& echo timestamp > $(@F)
$(srcdir)/gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) Makefile
( cd $(srcdir) && glib-mkenums \
--fhead "#define GDK_ENABLE_BROKEN\n#include \"gdk.h\"" \
--fprod "\n/* enumerations from \"@filename@\" */" \
--vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \
--vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
--vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
$(gdk_public_h_sources) ) > xgen-getc \
&& cp xgen-getc $(srcdir)/gdkenumtypes.c \
&& rm -f xgen-getc
gdkconfig.h: stamp-gc-h
@if test -f gdkconfig.h; then :; \
+1 -1
View File
@@ -275,7 +275,7 @@ gdk_draw_layout_line_with_colors (GdkDrawable *drawable,
tmp.green = foreground->green;
}
fg_gc = gdk_pango_get_gc (drawable, context, fg_set ? &tmp : NULL,
fg_gc = gdk_pango_get_gc (drawable, context, (fg_set || foreground) ? &tmp : NULL,
stipple, gc);
}
else
+2
View File
@@ -335,6 +335,8 @@ gdk_window_cache_filter (GdkXEvent *xev,
node->prev = above_node->prev;
if (node->prev)
node->prev->next = node;
else
cache->children = node;
node->next = above_node;
above_node->prev = node;
}
+18 -9
View File
@@ -1311,13 +1311,17 @@ gdk_event_translate (GdkEvent *event,
? " (discarding)"
: GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD
? " (discarding child)"
: xevent->xconfigure.event != xevent->xconfigure.window
? " (discarding substructure)"
: ""));
if (window &&
xevent->xconfigure.event == xevent->xconfigure.window &&
!GDK_WINDOW_DESTROYED (window) &&
(window_private->extension_events != 0))
_gdk_input_configure_event (&xevent->xconfigure, window);
if (!window ||
xevent->xconfigure.event != xevent->xconfigure.window ||
GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD ||
GDK_WINDOW_TYPE (window) == GDK_WINDOW_ROOT)
return_val = FALSE;
@@ -1387,12 +1391,6 @@ gdk_event_translate (GdkEvent *event,
break;
}
event->property.type = GDK_PROPERTY_NOTIFY;
event->property.window = window;
event->property.atom = gdk_x11_xatom_to_atom (xevent->xproperty.atom);
event->property.time = xevent->xproperty.time;
event->property.state = xevent->xproperty.state;
if (wm_state_atom == 0)
wm_state_atom = gdk_x11_get_xatom_by_name ("_NET_WM_STATE");
@@ -1403,9 +1401,20 @@ gdk_event_translate (GdkEvent *event,
xevent->xproperty.atom == wm_desktop_atom)
{
/* If window state changed, then synthesize those events. */
gdk_check_wm_state_changed (event->property.window);
gdk_check_wm_state_changed (window);
}
if (window_private->event_mask & GDK_PROPERTY_CHANGE_MASK)
{
event->property.type = GDK_PROPERTY_NOTIFY;
event->property.window = window;
event->property.atom = gdk_x11_xatom_to_atom (xevent->xproperty.atom);
event->property.time = xevent->xproperty.time;
event->property.state = xevent->xproperty.state;
}
else
return_val = FALSE;
break;
case SelectionClear:
@@ -2076,7 +2085,7 @@ gdk_xsettings_notify_cb (const char *name,
for (i = 0; i < G_N_ELEMENTS (settings_map) ; i++)
if (strcmp (settings_map[i].xsettings_name, name) == 0)
{
new_event.setting.name = g_strdup (settings_map[i].gdk_name);
new_event.setting.name = settings_map[i].gdk_name;
break;
}
+7
View File
@@ -54,6 +54,13 @@ update_keyrange (void)
#ifdef HAVE_XKB
#include <X11/XKBlib.h>
/* OSF-4.0 is apparently missing this macro
*/
#ifndef XkbKeySymEntry
#define XkbKeySymEntry(d,k,sl,g) \
(XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
#endif
gboolean _gdk_use_xkb = FALSE;
gint _gdk_xkb_event_type;
static XkbDescPtr xkb_desc = NULL;
+74
View File
@@ -112,6 +112,78 @@ GdkArgDesc _gdk_windowing_args[] = {
{ NULL }
};
/*
* XLib internal connection handling
*/
typedef struct _GdkInternalConnection GdkInternalConnection;
struct _GdkInternalConnection
{
gint fd;
GSource *source;
Display *display;
};
static gboolean
process_internal_connection (GIOChannel *gioc,
GIOCondition cond,
gpointer data)
{
GdkInternalConnection *connection = (GdkInternalConnection *)data;
GDK_THREADS_ENTER ();
XProcessInternalConnection ((Display*)connection->display, connection->fd);
GDK_THREADS_LEAVE ();
return TRUE;
}
static GdkInternalConnection *
gdk_add_connection_handler (Display *display,
guint fd)
{
GIOChannel *io_channel;
GdkInternalConnection *connection;
connection = g_new (GdkInternalConnection, 1);
connection->fd = fd;
connection->display = display;
io_channel = g_io_channel_unix_new (fd);
connection->source = g_io_create_watch (io_channel, G_IO_IN);
g_source_set_callback (connection->source,
(GSourceFunc)process_internal_connection, connection, NULL);
g_source_attach (connection->source, NULL);
g_io_channel_unref (io_channel);
return connection;
}
static void
gdk_remove_connection_handler (GdkInternalConnection *connection)
{
g_source_destroy (connection->source);
g_free (connection);
}
static void
gdk_internal_connection_watch (Display *display,
XPointer arg,
gint fd,
gboolean opening,
XPointer *watch_data)
{
if (opening)
*watch_data = (XPointer)gdk_add_connection_handler (display, fd);
else
gdk_remove_connection_handler ((GdkInternalConnection *)*watch_data);
}
gboolean
_gdk_windowing_init_check (int argc, char **argv)
{
@@ -127,6 +199,8 @@ _gdk_windowing_init_check (int argc, char **argv)
gdk_display = XOpenDisplay (_gdk_display_name);
if (!gdk_display)
return FALSE;
XAddConnectionWatch (gdk_display, gdk_internal_connection_watch, NULL);
if (gdk_synchronize)
XSynchronize (gdk_display, True);
+6 -6
View File
@@ -162,14 +162,14 @@ gdk_pixmap_new (GdkWindow *window,
GdkColormap *cmap;
gint window_depth;
g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL);
g_return_val_if_fail (window == NULL || GDK_IS_DRAWABLE (window), NULL);
g_return_val_if_fail ((window != NULL) || (depth != -1), NULL);
g_return_val_if_fail ((width != 0) && (height != 0), NULL);
if (!window)
window = _gdk_parent_root;
if (GDK_WINDOW_DESTROYED (window))
if (GDK_IS_WINDOW (window) && GDK_WINDOW_DESTROYED (window))
return NULL;
window_depth = gdk_drawable_get_depth (GDK_DRAWABLE (window));
@@ -215,12 +215,12 @@ gdk_bitmap_create_from_data (GdkWindow *window,
g_return_val_if_fail (data != NULL, NULL);
g_return_val_if_fail ((width != 0) && (height != 0), NULL);
g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL);
g_return_val_if_fail (window == NULL || GDK_IS_DRAWABLE (window), NULL);
if (!window)
window = _gdk_parent_root;
if (GDK_WINDOW_DESTROYED (window))
if (GDK_IS_WINDOW (window) && GDK_WINDOW_DESTROYED (window))
return NULL;
pixmap = g_object_new (gdk_pixmap_get_type (), NULL);
@@ -256,7 +256,7 @@ gdk_pixmap_create_from_data (GdkWindow *window,
GdkDrawableImplX11 *draw_impl;
GdkPixmapImplX11 *pix_impl;
g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL);
g_return_val_if_fail (window == NULL || GDK_IS_DRAWABLE (window), NULL);
g_return_val_if_fail (data != NULL, NULL);
g_return_val_if_fail (fg != NULL, NULL);
g_return_val_if_fail (bg != NULL, NULL);
@@ -266,7 +266,7 @@ gdk_pixmap_create_from_data (GdkWindow *window,
if (!window)
window = _gdk_parent_root;
if (GDK_WINDOW_DESTROYED (window))
if (GDK_IS_WINDOW (window) && GDK_WINDOW_DESTROYED (window))
return NULL;
if (depth == -1)
+5 -2
View File
@@ -410,7 +410,7 @@ gdk_window_new (GdkWindow *parent,
visual = gdk_visual_get_system ();
xvisual = ((GdkVisualPrivate*) visual)->xvisual;
xattributes.event_mask = StructureNotifyMask;
xattributes.event_mask = StructureNotifyMask | PropertyChangeMask;
for (i = 0; i < _gdk_nenvent_masks; i++)
{
if (attributes->event_mask & (1 << (i + 1)))
@@ -1251,6 +1251,9 @@ gdk_window_reparent (GdkWindow *window,
GDK_WINDOW_XID (new_parent),
x, y);
window_private->x = x;
window_private->y = y;
/* From here on, we treat parents of type GDK_WINDOW_FOREIGN like
* the root window
*/
@@ -2521,7 +2524,7 @@ gdk_window_set_events (GdkWindow *window,
if (!GDK_WINDOW_DESTROYED (window))
{
GDK_WINDOW_OBJECT (window)->event_mask = event_mask;
xevent_mask = StructureNotifyMask;
xevent_mask = StructureNotifyMask | PropertyChangeMask;
for (i = 0; i < _gdk_nenvent_masks; i++)
{
if (event_mask & (1 << (i + 1)))
+2 -1
View File
@@ -511,7 +511,8 @@ xsettings_client_process_event (XSettingsClient *client,
if (xev->xany.window == RootWindow (client->display, client->screen))
{
if (xev->xany.type == ClientMessage &&
xev->xclient.message_type == client->manager_atom)
xev->xclient.message_type == client->manager_atom &&
xev->xclient.data.l[1] == client->selection_atom)
{
check_manager_window (client);
return True;
+1 -1
View File
@@ -15,7 +15,7 @@ lib/libgdk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.
lib/libgtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll
EOF
zip $ZIP lib/gtk-2.0/@GTK_VERSION@/loaders/*.dll lib/gtk-2.0/immodules/@GTK_VERSION@/*.dll
zip $ZIP lib/gtk-2.0/@GTK_BINARY_VERSION@/loaders/*.dll lib/gtk-2.0/@GTK_BINARY_VERSION@/immodules/*.dll
zip $ZIP share/themes/*/gtk-2.0/gtkrc share/themes/*/gtk-2.0-key/gtkrc
+5 -3
View File
@@ -565,14 +565,16 @@ endif
# Install a RC file for the default GTK+ theme, and key themes
install-data-local: install-ms-lib install-libtool-import-lib
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0
$(INSTALL) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
$(INSTALL_DATA) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
$(INSTALL) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
$(INSTALL_DATA) $(srcdir)/gtkrc.key.default $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
$(INSTALL) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
$(INSTALL_DATA) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc
rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
DEPS = $(gtktargetlib) $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la $(top_builddir)/gdk/$(gdktargetlib)
+4 -4
View File
@@ -119,15 +119,15 @@ gtk_accel_group_class_init (GtkAccelGroupClass *class)
G_SIGNAL_DETAILED,
0,
accel_activate_accumulator, NULL,
_gtk_marshal_BOOLEAN__OBJECT_UINT_UINT,
G_TYPE_BOOLEAN, 3, G_TYPE_OBJECT, G_TYPE_UINT, G_TYPE_UINT);
_gtk_marshal_BOOLEAN__OBJECT_UINT_FLAGS,
G_TYPE_BOOLEAN, 3, G_TYPE_OBJECT, G_TYPE_UINT, GDK_TYPE_MODIFIER_TYPE);
signal_accel_changed = g_signal_new ("accel_changed",
G_OBJECT_CLASS_TYPE (class),
G_SIGNAL_RUN_FIRST | G_SIGNAL_DETAILED,
G_STRUCT_OFFSET (GtkAccelGroupClass, accel_changed),
NULL, NULL,
_gtk_marshal_VOID__UINT_UINT_BOXED,
G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_CLOSURE);
_gtk_marshal_VOID__UINT_FLAGS_BOXED,
G_TYPE_NONE, 3, G_TYPE_UINT, GDK_TYPE_MODIFIER_TYPE, G_TYPE_CLOSURE);
}
static void
+2 -2
View File
@@ -152,8 +152,8 @@ gtk_clipboard_get (GdkAtom selection)
static void
selection_get_cb (GtkWidget *widget,
GtkSelectionData *selection_data,
guint time,
guint info)
guint info,
guint time)
{
GtkClipboard *clipboard = gtk_clipboard_get (selection_data->selection);
+2 -5
View File
@@ -7669,7 +7669,7 @@ gtk_clist_drag_data_received (GtkWidget *widget,
gtk_drag_get_source_widget (context) == widget &&
selection_data->target ==
gdk_atom_intern ("gtk-clist-drag-reorder", FALSE) &&
selection_data->format == GTK_TYPE_POINTER &&
selection_data->format == 8 &&
selection_data->length == sizeof (GtkCListCellInfo))
{
GtkCListCellInfo *source_info;
@@ -7719,12 +7719,9 @@ gtk_clist_drag_data_get (GtkWidget *widget,
ret_info.column = info->column;
gtk_selection_data_set (selection_data, selection_data->target,
GTK_TYPE_POINTER, (guchar *) &ret_info,
8, (guchar *) &ret_info,
sizeof (GtkCListCellInfo));
}
else
gtk_selection_data_set (selection_data, selection_data->target,
GTK_TYPE_POINTER, NULL, 0);
}
}
+8 -1
View File
@@ -378,6 +378,8 @@ gtk_combo_entry_focus_out (GtkEntry * entry, GdkEventFocus * event, GtkCombo * c
if (combo->value_in_list && !gtk_combo_find (combo))
{
GSource *focus_idle;
/* gdk_beep(); *//* this can be annoying */
if (combo->ok_if_empty && !strcmp (gtk_entry_get_text (entry), ""))
return FALSE;
@@ -390,7 +392,12 @@ gtk_combo_entry_focus_out (GtkEntry * entry, GdkEventFocus * event, GtkCombo * c
so the focus can be lost anyway...
the signal_emit_stop doesn't seem to work either...
*/
gtk_idle_add ((GtkFunction) gtk_combo_focus_idle, combo);
focus_idle = g_idle_source_new ();
g_source_set_closure (focus_idle,
g_cclosure_new_object (G_CALLBACK (gtk_combo_focus_idle),
G_OBJECT (combo)));
g_source_attach (focus_idle, NULL);
/*gtk_signal_emit_stop_by_name (GTK_OBJECT (entry), "focus_out_event"); */
return TRUE;
}
+15 -1
View File
@@ -1389,6 +1389,20 @@ get_focus_chain (GtkContainer *container)
return g_object_get_data (G_OBJECT (container), "gtk-container-focus-chain");
}
/* same as gtk_container_get_children, except it includes internals
*/
static GList *
gtk_container_get_all_children (GtkContainer *container)
{
GList *children = NULL;
gtk_container_forall (container,
gtk_container_children_callback,
&children);
return children;
}
static gboolean
gtk_container_focus (GtkWidget *widget,
GtkDirectionType direction)
@@ -1420,7 +1434,7 @@ gtk_container_focus (GtkWidget *widget,
if (container->has_focus_chain)
children = g_list_copy (get_focus_chain (container));
else
children = gtk_container_get_children (container);
children = gtk_container_get_all_children (container);
if (container->has_focus_chain &&
(direction == GTK_DIR_TAB_FORWARD ||
+1 -3
View File
@@ -2904,8 +2904,6 @@ cell_size_request (GtkCList *clist,
requisition->height = MAX (requisition->height, height);
break;
default:
requisition->width = 0;
requisition->height = 0;
break;
}
@@ -6050,7 +6048,7 @@ gtk_ctree_drag_data_received (GtkWidget *widget,
gtk_drag_get_source_widget (context) == widget &&
selection_data->target ==
gdk_atom_intern ("gtk-clist-drag-reorder", FALSE) &&
selection_data->format == GTK_TYPE_POINTER &&
selection_data->format == 8 &&
selection_data->length == sizeof (GtkCListCellInfo))
{
GtkCListCellInfo *source_info;
+11 -2
View File
@@ -102,6 +102,8 @@ struct _GtkDragSourceInfo
guint drop_timeout; /* Timeout for aborting drop */
guint destroy_icon : 1; /* If true, destroy icon_window
*/
guint have_grab : 1; /* Do we still have the pointer grab
*/
};
struct _GtkDragDestSite
@@ -844,9 +846,9 @@ gtk_drag_dest_set (GtkWidget *widget,
site->target_list = gtk_target_list_new (targets, n_targets);
else
site->target_list = NULL;
site->actions = actions;
site->do_proxy = FALSE;
site->proxy_window = NULL;
gtk_drag_dest_set_internal (widget, site);
}
@@ -1488,6 +1490,9 @@ gtk_drag_dest_site_destroy (gpointer data)
{
GtkDragDestSite *site = data;
if (site->proxy_window)
g_object_unref (site->proxy_window);
if (site->target_list)
gtk_target_list_unref (site->target_list);
@@ -1879,6 +1884,8 @@ gtk_drag_begin (GtkWidget *widget,
}
}
info->have_grab = TRUE;
return info->context;
}
@@ -2431,7 +2438,7 @@ _gtk_drag_source_handle_event (GtkWidget *widget,
}
}
}
else
else if (info->have_grab)
{
cursor = gtk_drag_get_cursor (event->dnd.context->action);
if (info->cursor != cursor)
@@ -2989,6 +2996,8 @@ gtk_drag_end (GtkDragSourceInfo *info, guint32 time)
GdkEvent send_event;
GtkWidget *source_widget = info->widget;
info->have_grab = FALSE;
gdk_pointer_ungrab (time);
gdk_keyboard_ungrab (time);
+6 -6
View File
@@ -2358,11 +2358,11 @@ update_im_cursor_location (GtkEntry *entry)
GdkRectangle area;
gint strong_x;
gint strong_xoffset;
gint x, y, area_width, area_height;
gint area_width, area_height;
gtk_entry_get_cursor_locations (entry, CURSOR_STANDARD, &strong_x, NULL)
;
get_text_area_size (entry, &x, &y, &area_width, &area_height);
get_text_area_size (entry, NULL, NULL, &area_width, &area_height);
strong_xoffset = strong_x - entry->scroll_offset;
if (strong_xoffset < 0)
@@ -2373,9 +2373,9 @@ update_im_cursor_location (GtkEntry *entry)
{
strong_xoffset = area_width;
}
area.x = x + strong_xoffset;
area.y = y + area_height;
area.width = area_width;
area.x = strong_xoffset;
area.y = 0;
area.width = 0;
area.height = area_height;
gtk_im_context_set_cursor_location (entry->im_context, &area);
@@ -4088,7 +4088,7 @@ gtk_entry_drag_data_get (GtkWidget *widget,
if (gtk_editable_get_selection_bounds (editable, &sel_start, &sel_end))
{
gchar *str = gtk_editable_get_chars (editable, sel_start, sel_end);
gchar *str = gtk_entry_get_public_chars (GTK_ENTRY (widget), sel_start, sel_end);
gtk_selection_data_set_text (selection_data, str, -1);
+17 -1
View File
@@ -136,6 +136,9 @@ static void gtk_font_selection_show_available_sizes (GtkFontSelection *fs,
gboolean first_time);
static void gtk_font_selection_size_activate (GtkWidget *w,
gpointer data);
static gboolean gtk_font_selection_size_focus_out (GtkWidget *w,
GdkEventFocus *event,
gpointer data);
static void gtk_font_selection_select_size (GtkTreeSelection *selection,
gpointer data);
@@ -317,6 +320,9 @@ gtk_font_selection_init (GtkFontSelection *fontsel)
gtk_signal_connect (GTK_OBJECT (fontsel->size_entry), "activate",
(GtkSignalFunc) gtk_font_selection_size_activate,
fontsel);
gtk_signal_connect_after (GTK_OBJECT (fontsel->size_entry), "focus_out_event",
(GtkSignalFunc) gtk_font_selection_size_focus_out,
fontsel);
font_label = gtk_label_new_with_mnemonic (_("_Family:"));
gtk_misc_set_alignment (GTK_MISC (font_label), 0.0, 0.5);
@@ -616,7 +622,7 @@ cmp_families (const void *a, const void *b)
const char *a_name = pango_font_family_get_name (*(PangoFontFamily **)a);
const char *b_name = pango_font_family_get_name (*(PangoFontFamily **)b);
return strcmp (a_name, b_name);
return g_utf8_collate (a_name, b_name);
}
static void
@@ -941,6 +947,16 @@ gtk_font_selection_size_activate (GtkWidget *w,
gtk_font_selection_set_size (fontsel, new_size);
}
static gboolean
gtk_font_selection_size_focus_out (GtkWidget *w,
GdkEventFocus *event,
gpointer data)
{
gtk_font_selection_size_activate (w, data);
return TRUE;
}
/* This is called when a size is selected in the list. */
static void
gtk_font_selection_select_size (GtkTreeSelection *selection,
+16 -14
View File
@@ -1101,10 +1101,9 @@ canonical_hex_keyval (GdkEventKey *event)
if (keyval)
return keyval;
else
/* just return the keyval unchanged, we couldn't figure
* out a way to make it a hex digit
/* No way to make it a hex digit
*/
return event->keyval;
return 0;
}
static gboolean
@@ -1114,6 +1113,8 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
GSList *tmp_list;
int n_compose = 0;
gboolean have_hex_mods;
guint hex_keyval;
int i;
if (event->type == GDK_KEY_RELEASE)
@@ -1142,30 +1143,31 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
if (event->keyval == gtk_compose_ignore[i])
return FALSE;
have_hex_mods = (event->state & (ISO_14755_MOD_MASK)) == ISO_14755_MOD_MASK;
hex_keyval = canonical_hex_keyval (event);
while (context_simple->compose_buffer[n_compose] != 0)
n_compose++;
/* First key in sequence; decide if it's a 14755 hex sequence */
if (n_compose == 0)
context_simple->in_hex_sequence =
((event->state & (ISO_14755_MOD_MASK)) == ISO_14755_MOD_MASK);
/* If we are already in a non-hex sequence, or
* the 14755 modifiers are not held down, filter all
* this keystroke is not 14755 modifiers + hex digit, don't filter
* key events with accelerator modifiers held down.
*/
if (!context_simple->in_hex_sequence ||
((event->state & (ISO_14755_MOD_MASK)) != ISO_14755_MOD_MASK))
if ((n_compose > 0 && !context_simple->in_hex_sequence) || !have_hex_mods || !hex_keyval)
{
if (event->state &
(gtk_accelerator_get_default_mod_mask () & ~GDK_SHIFT_MASK))
return FALSE;
}
/* First key in sequence; decide if it's a 14755 hex sequence */
if (n_compose == 0)
context_simple->in_hex_sequence = have_hex_mods;
/* Then, check for compose sequences
*/
if (context_simple->in_hex_sequence)
context_simple->compose_buffer[n_compose++] = canonical_hex_keyval (event);
context_simple->compose_buffer[n_compose++] = hex_keyval ? hex_keyval : event->keyval;
else
context_simple->compose_buffer[n_compose++] = event->keyval;
@@ -1174,7 +1176,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
if (context_simple->in_hex_sequence)
{
/* If the modifiers are still held down, consider the sequence again */
if ((event->state & (ISO_14755_MOD_MASK)) == ISO_14755_MOD_MASK)
if (have_hex_mods)
{
/* space ends the sequence, and we eat the space */
if (n_compose > 1 &&
@@ -1226,7 +1228,7 @@ gtk_im_context_simple_get_preedit_string (GtkIMContext *context,
PangoAttrList **attrs,
gint *cursor_pos)
{
char outbuf[25]; /* up to 4 hex digits */
char outbuf[37]; /* up to 6 hex digits */
int len = 0;
GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
+6 -1
View File
@@ -157,6 +157,8 @@ gtk_im_multicontext_set_slave (GtkIMMulticontext *multicontext,
GtkIMContext *slave,
gboolean finalizing)
{
gboolean need_preedit_changed = FALSE;
if (multicontext->slave)
{
if (!finalizing)
@@ -179,7 +181,7 @@ gtk_im_multicontext_set_slave (GtkIMMulticontext *multicontext,
multicontext->slave = NULL;
if (!finalizing)
g_signal_emit_by_name (multicontext, "preedit_changed");
need_preedit_changed = TRUE;
}
multicontext->slave = slave;
@@ -210,6 +212,9 @@ gtk_im_multicontext_set_slave (GtkIMMulticontext *multicontext,
if (multicontext->client_window)
gtk_im_context_set_client_window (slave, multicontext->client_window);
}
if (need_preedit_changed)
g_signal_emit_by_name (multicontext, "preedit_changed");
}
static GtkIMContext *
+3 -2
View File
@@ -1443,6 +1443,7 @@ gtk_label_ensure_layout (GtkLabel *label)
pango_layout_set_width (label->layout, width);
pango_layout_get_extents (label->layout, NULL, &logical_rect);
width = logical_rect.width;
height = logical_rect.height;
/* Unfortunately, the above may leave us with a very unbalanced looking paragraph,
@@ -1461,7 +1462,7 @@ gtk_label_ensure_layout (GtkLabel *label)
pango_layout_get_extents (label->layout, NULL, &logical_rect);
if (logical_rect.height <= height)
width = perfect_width;
width = logical_rect.width;
else
{
gint mid_width = (perfect_width + width) / 2;
@@ -1472,7 +1473,7 @@ gtk_label_ensure_layout (GtkLabel *label)
pango_layout_get_extents (label->layout, NULL, &logical_rect);
if (logical_rect.height <= height)
width = mid_width;
width = logical_rect.width;
}
}
}
+28 -22
View File
@@ -108,7 +108,8 @@ static void gtk_layout_style_set (GtkWidget *widget,
GtkStyle *old_style);
static void gtk_layout_set_adjustment_upper (GtkAdjustment *adj,
gdouble upper);
gdouble upper,
gboolean always_emit_changed);
static GtkWidgetClass *parent_class = NULL;
@@ -222,7 +223,7 @@ gtk_layout_set_adjustments (GtkLayout *layout,
layout->hadjustment = hadj;
gtk_object_ref (GTK_OBJECT (layout->hadjustment));
gtk_object_sink (GTK_OBJECT (layout->hadjustment));
gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width);
gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width, FALSE);
gtk_signal_connect (GTK_OBJECT (layout->hadjustment), "value_changed",
(GtkSignalFunc) gtk_layout_adjustment_changed,
@@ -235,7 +236,7 @@ gtk_layout_set_adjustments (GtkLayout *layout,
layout->vadjustment = vadj;
gtk_object_ref (GTK_OBJECT (layout->vadjustment));
gtk_object_sink (GTK_OBJECT (layout->vadjustment));
gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height);
gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height, FALSE);
gtk_signal_connect (GTK_OBJECT (layout->vadjustment), "value_changed",
(GtkSignalFunc) gtk_layout_adjustment_changed,
@@ -420,25 +421,30 @@ gtk_layout_move (GtkLayout *layout,
static void
gtk_layout_set_adjustment_upper (GtkAdjustment *adj,
gdouble upper)
gdouble upper,
gboolean always_emit_changed)
{
gboolean changed = FALSE;
gboolean value_changed = FALSE;
gdouble min = MAX (0., upper - adj->page_size);
if (upper != adj->upper)
{
gdouble min = MAX (0., upper - adj->page_size);
gboolean value_changed = FALSE;
adj->upper = upper;
if (adj->value > min)
{
adj->value = min;
value_changed = TRUE;
}
gtk_signal_emit_by_name (GTK_OBJECT (adj), "changed");
if (value_changed)
gtk_signal_emit_by_name (GTK_OBJECT (adj), "value_changed");
changed = TRUE;
}
if (adj->value > min)
{
adj->value = min;
value_changed = TRUE;
}
if (changed || always_emit_changed)
gtk_signal_emit_by_name (GTK_OBJECT (adj), "changed");
if (value_changed)
gtk_signal_emit_by_name (GTK_OBJECT (adj), "value_changed");
}
/**
@@ -475,9 +481,9 @@ gtk_layout_set_size (GtkLayout *layout,
g_object_thaw_notify (G_OBJECT (layout));
if (layout->hadjustment)
gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width);
gtk_layout_set_adjustment_upper (layout->hadjustment, layout->width, FALSE);
if (layout->vadjustment)
gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height);
gtk_layout_set_adjustment_upper (layout->vadjustment, layout->height, FALSE);
if (GTK_WIDGET_REALIZED (layout))
{
@@ -1002,14 +1008,14 @@ gtk_layout_size_allocate (GtkWidget *widget,
layout->hadjustment->page_size = allocation->width;
layout->hadjustment->page_increment = allocation->width * 0.9;
layout->hadjustment->lower = 0;
layout->hadjustment->upper = MAX (allocation->width, layout->width);
gtk_signal_emit_by_name (GTK_OBJECT (layout->hadjustment), "changed");
/* set_adjustment_upper() emits ::changed */
gtk_layout_set_adjustment_upper (layout->hadjustment, MAX (allocation->width, layout->width), TRUE);
layout->vadjustment->page_size = allocation->height;
layout->vadjustment->page_increment = allocation->height * 0.9;
layout->vadjustment->lower = 0;
layout->vadjustment->upper = MAX (allocation->height, layout->height);
gtk_signal_emit_by_name (GTK_OBJECT (layout->vadjustment), "changed");
gtk_layout_set_adjustment_upper (layout->vadjustment, MAX (allocation->height, layout->height), TRUE);
}
static gint
+29 -5
View File
@@ -49,6 +49,7 @@
#include <pango/pango-utils.h> /* For pango_split_file_list */
#include "gtkaccelmap.h"
#include "gtkbox.h"
#include "gtkdnd.h"
#include "gtkversion.h"
#include "gtkmain.h"
@@ -183,8 +184,6 @@ gtk_check_version (guint required_major,
return NULL;
}
#undef gtk_init_check
/* This checks to see if the process is running suid or sgid
* at the current time. If so, we don't allow GTK+ to be initialized.
* This is meant to be a mild check - we only error out if we
@@ -551,6 +550,8 @@ gtk_disable_setlocale (void)
do_setlocale = FALSE;
}
#undef gtk_init_check
gboolean
gtk_init_check (int *argc,
char ***argv)
@@ -790,23 +791,46 @@ check_sizeof_GtkWindow (size_t sizeof_GtkWindow)
"The code using GTK+ thinks GtkWindow is of different\n"
"size than it actually is in this build of GTK+.\n"
"On Windows, this probably means that you have compiled\n"
"your code with gcc without the -fnative-struct switch.");
"your code with gcc without the -fnative-struct switch,\n"
"or that you are using an unsupported compiler.");
}
/* In GTK+ 2.0 the GtkWindow struct actually is the same size in
* gcc-compiled code on Win32 whether compiled with -fnative-struct or
* not. Unfortunately this wan't noticed until after GTK+ 2.0.1. So,
* from GTK+ 2.0.2 on, check some other struct, too, where the use of
* -fnative-struct still matters. GtkBox is one such.
*/
static void
check_sizeof_GtkBox (size_t sizeof_GtkBox)
{
if (sizeof_GtkBox != sizeof (GtkBox))
g_error ("Incompatible build!\n"
"The code using GTK+ thinks GtkBox is of different\n"
"size than it actually is in this build of GTK+.\n"
"On Windows, this probably means that you have compiled\n"
"your code with gcc without the -fnative-struct switch,\n"
"or that you are using an unsupported compiler.");
}
/* These two functions might get more checks added later, thus pass
* in the number of extra args.
*/
void
gtk_init_abi_check (int *argc, char ***argv, int num_checks, size_t sizeof_GtkWindow)
gtk_init_abi_check (int *argc, char ***argv, int num_checks, size_t sizeof_GtkWindow, size_t sizeof_GtkBox)
{
check_sizeof_GtkWindow (sizeof_GtkWindow);
if (num_checks >= 2)
check_sizeof_GtkBox (sizeof_GtkBox);
gtk_init (argc, argv);
}
gboolean
gtk_init_check_abi_check (int *argc, char ***argv, int num_checks, size_t sizeof_GtkWindow)
gtk_init_check_abi_check (int *argc, char ***argv, int num_checks, size_t sizeof_GtkWindow, size_t sizeof_GtkBox)
{
check_sizeof_GtkWindow (sizeof_GtkWindow);
if (num_checks >= 2)
check_sizeof_GtkBox (sizeof_GtkBox);
return gtk_init_check (argc, argv);
}
+6 -4
View File
@@ -98,14 +98,16 @@ gboolean gtk_init_check (int *argc,
void gtk_init_abi_check (int *argc,
char ***argv,
int num_checks,
size_t sizeof_GtkWindow);
size_t sizeof_GtkWindow,
size_t sizeof_GtkBox);
gboolean gtk_init_check_abi_check (int *argc,
char ***argv,
int num_checks,
size_t sizeof_GtkWindow);
size_t sizeof_GtkWindow,
size_t sizeof_GtkBox);
#define gtk_init(argc, argv) gtk_init_abi_check (argc, argv, 1, sizeof (GtkWindow))
#define gtk_init_check(argc, argv) gtk_init_check_abi_check (argc, argv, 1, sizeof (GtkWindow))
#define gtk_init(argc, argv) gtk_init_abi_check (argc, argv, 2, sizeof (GtkWindow), sizeof (GtkBox))
#define gtk_init_check(argc, argv) gtk_init_check_abi_check (argc, argv, 2, sizeof (GtkWindow), sizeof (GtkBox))
#endif
+2 -2
View File
@@ -25,7 +25,7 @@ BOOLEAN:BOXED
BOOLEAN:BOXED,BOXED
BOOLEAN:ENUM
BOOLEAN:ENUM,INT
BOOLEAN:OBJECT,UINT,UINT
BOOLEAN:OBJECT,UINT,FLAGS
BOOLEAN:OBJECT,INT,INT,UINT
BOOLEAN:OBJECT,STRING,STRING,BOXED
BOOLEAN:OBJECT,BOXED,BOXED
@@ -81,8 +81,8 @@ VOID:POINTER,UINT
VOID:STRING
VOID:STRING,STRING
VOID:STRING,INT,POINTER
VOID:UINT,FLAGS,BOXED
VOID:UINT,UINT
VOID:UINT,UINT,BOXED
VOID:UINT,STRING
VOID:UINT,BOXED,UINT,FLAGS,FLAGS
VOID:UINT,OBJECT,UINT,FLAGS,FLAGS
+1 -37
View File
@@ -1112,13 +1112,6 @@ gtk_menu_set_tearoff_state (GtkMenu *menu,
gtk_widget_realize (menu->tearoff_window);
gdk_window_set_decorations (menu->tearoff_window->window,
GDK_DECOR_ALL |
GDK_DECOR_RESIZEH |
GDK_DECOR_MINIMIZE |
GDK_DECOR_MAXIMIZE);
gtk_window_set_resizable (GTK_WINDOW (menu->tearoff_window), FALSE);
menu->tearoff_hbox = gtk_hbox_new (FALSE, FALSE);
gtk_container_add (GTK_CONTAINER (menu->tearoff_window), menu->tearoff_hbox);
@@ -1667,35 +1660,6 @@ gtk_menu_paint (GtkWidget *widget,
MENU_SCROLL_ARROW_HEIGHT - 2 * border_y - 2);
}
}
else if (event->window == menu->view_window)
{
gint menu_height;
gint top_pos;
if (menu->scroll_offset < 0)
gtk_paint_box (widget->style,
menu->view_window,
GTK_STATE_ACTIVE,
GTK_SHADOW_IN,
NULL, widget, "menu",
0, 0,
-1,
-menu->scroll_offset);
menu_height = widget->requisition.height - 2*border_y;
top_pos = height - 2*border_y - (menu->upper_arrow_visible ? MENU_SCROLL_ARROW_HEIGHT : 0);
if (menu_height - menu->scroll_offset < top_pos)
gtk_paint_box (widget->style,
menu->view_window,
GTK_STATE_ACTIVE,
GTK_SHADOW_IN,
NULL, widget, "menu",
0,
menu_height - menu->scroll_offset,
-1,
top_pos - (menu_height - menu->scroll_offset));
}
}
static gboolean
@@ -1814,7 +1778,7 @@ gtk_menu_key_press (GtkWidget *widget,
menu_shell->active_menu_item &&
GTK_BIN (menu_shell->active_menu_item)->child && /* no seperators */
GTK_MENU_ITEM (menu_shell->active_menu_item)->submenu == NULL && /* no submenus */
(delete || gtk_accelerator_valid (event->keyval, event->state)))
(delete || gtk_accelerator_valid (accel_key, accel_mods)))
{
GtkWidget *menu_item = menu_shell->active_menu_item;
gboolean replace_accels = TRUE;
+8 -2
View File
@@ -488,6 +488,8 @@ gtk_menu_item_size_allocate (GtkWidget *widget,
if (bin->child)
{
GtkRequisition child_requisition;
child_allocation.x = (GTK_CONTAINER (widget)->border_width +
widget->style->xthickness +
BORDER_SPACING);
@@ -499,9 +501,13 @@ gtk_menu_item_size_allocate (GtkWidget *widget,
child_allocation.width -= GTK_MENU_ITEM (widget)->toggle_size;
child_allocation.x += widget->allocation.x;
child_allocation.y += widget->allocation.y;
gtk_widget_get_child_requisition (bin->child, &child_requisition);
if (menu_item->submenu && menu_item->show_submenu_indicator)
child_allocation.width -= child_allocation.height;
child_allocation.width -= child_requisition.height;
if (child_allocation.width < 1)
child_allocation.width = 1;
gtk_widget_size_allocate (bin->child, &child_allocation);
}
+1 -1
View File
@@ -4252,7 +4252,7 @@ gtk_notebook_prev_page (GtkNotebook *notebook)
* @show_border: %TRUE if a bevel should be drawn around the notebook.
*
* Sets whether a bevel will be drawn around the notebook pages.
* This is only has an effect when the tabs are not shown.
* This only has a visual effect when the tabs are not shown.
* See gtk_notebook_set_show_tabs().
**/
void
+6 -1
View File
@@ -295,7 +295,12 @@ gtk_option_menu_remove_menu (GtkOptionMenu *option_menu)
g_return_if_fail (GTK_IS_OPTION_MENU (option_menu));
if (option_menu->menu)
gtk_menu_detach (GTK_MENU (option_menu->menu));
{
if (GTK_MENU_SHELL (option_menu->menu)->active)
g_signal_emit_by_name (option_menu->menu, "cancel", 0);
gtk_menu_detach (GTK_MENU (option_menu->menu));
}
}
void
+42 -38
View File
@@ -48,6 +48,8 @@ static void gtk_plug_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean gtk_plug_key_press_event (GtkWidget *widget,
GdkEventKey *event);
static gboolean gtk_plug_focus_event (GtkWidget *widget,
GdkEventFocus *event);
static void gtk_plug_set_focus (GtkWindow *window,
GtkWidget *focus);
static gboolean gtk_plug_focus (GtkWidget *widget,
@@ -123,6 +125,8 @@ gtk_plug_class_init (GtkPlugClass *class)
widget_class->realize = gtk_plug_realize;
widget_class->unrealize = gtk_plug_unrealize;
widget_class->key_press_event = gtk_plug_key_press_event;
widget_class->focus_in_event = gtk_plug_focus_event;
widget_class->focus_out_event = gtk_plug_focus_event;
widget_class->show = gtk_plug_show;
widget_class->hide = gtk_plug_hide;
@@ -217,6 +221,7 @@ _gtk_plug_add_to_socket (GtkPlug *plug,
GtkSocket *socket)
{
GtkWidget *widget;
gint w, h;
g_return_if_fail (GTK_IS_PLUG (plug));
g_return_if_fail (GTK_IS_SOCKET (socket));
@@ -232,7 +237,10 @@ _gtk_plug_add_to_socket (GtkPlug *plug,
plug->socket_window = GTK_WIDGET (socket)->window;
if (GTK_WIDGET_REALIZED (widget))
gdk_window_reparent (widget->window, plug->socket_window, 0, 0);
{
gdk_drawable_get_size (GDK_DRAWABLE (widget->window), &w, &h);
gdk_window_reparent (widget->window, plug->socket_window, -w, -h);
}
gtk_widget_set_parent (widget, GTK_WIDGET (socket));
@@ -274,7 +282,9 @@ _gtk_plug_remove_from_socket (GtkPlug *plug,
GTK_PRIVATE_UNSET_FLAG (plug, GTK_IN_REPARENT);
socket->plug_widget = NULL;
g_object_unref (socket->plug_window);
socket->plug_window = NULL;
socket->same_app = FALSE;
plug->same_app = FALSE;
@@ -587,6 +597,17 @@ gtk_plug_key_press_event (GtkWidget *widget,
return FALSE;
}
static gboolean
gtk_plug_focus_event (GtkWidget *widget,
GdkEventFocus *event)
{
/* We eat focus-in events and focus-out events, since they
* can be generated by something like a keyboard grab on
* a child of the plug.
*/
return FALSE;
}
static void
gtk_plug_set_focus (GtkWindow *window,
GtkWidget *focus)
@@ -600,23 +621,6 @@ gtk_plug_set_focus (GtkWindow *window,
if (focus && !window->has_focus)
{
#if 0
XEvent xevent;
xevent.xfocus.type = FocusIn;
xevent.xfocus.display = GDK_WINDOW_XDISPLAY (GTK_WIDGET(plug)->window);
xevent.xfocus.window = GDK_WINDOW_XWINDOW (plug->socket_window);
xevent.xfocus.mode = EMBEDDED_APP_WANTS_FOCUS;
xevent.xfocus.detail = FALSE; /* Don't force */
gdk_error_trap_push ();
XSendEvent (GDK_DISPLAY (),
GDK_WINDOW_XWINDOW (plug->socket_window),
False, NoEventMask, &xevent);
gdk_flush ();
gdk_error_trap_pop ();
#endif
send_xembed_message (plug, XEMBED_REQUEST_FOCUS, 0, 0, 0,
gtk_get_current_event_time ());
}
@@ -781,19 +785,6 @@ gtk_plug_focus (GtkWidget *widget,
send_xembed_message (plug, message, 0, 0, 0,
gtk_get_current_event_time ());
#if 0
gtk_window_set_focus (GTK_WINDOW (widget), NULL);
gdk_error_trap_push ();
XSetInputFocus (GDK_DISPLAY (),
GDK_WINDOW_XWINDOW (plug->socket_window),
RevertToParent, event->time);
gdk_flush ();
gdk_error_trap_pop ();
gtk_plug_forward_key_press (plug, event);
#endif
}
}
@@ -831,6 +822,9 @@ send_xembed_message (GtkPlug *plug,
{
XEvent xevent;
GTK_NOTE(PLUGSOCKET,
g_message ("GtkPlug: Sending XEMBED message of type %ld", message));
xevent.xclient.window = GDK_WINDOW_XWINDOW (plug->socket_window);
xevent.xclient.type = ClientMessage;
xevent.xclient.message_type = gdk_x11_get_xatom_by_name ("_XEMBED");
@@ -922,7 +916,7 @@ handle_xembed_message (GtkPlug *plug,
guint32 time)
{
GTK_NOTE (PLUGSOCKET,
g_message ("Message of type %ld received", message));
g_message ("GtkPlug: Message of type %ld received", message));
switch (message)
{
@@ -959,15 +953,24 @@ handle_xembed_message (GtkPlug *plug,
case XEMBED_FOCUS_OUT:
{
GtkWidget *widget = GTK_WIDGET (plug);
GdkEvent event;
event.focus_change.type = GDK_FOCUS_CHANGE;
event.focus_change.window = GTK_WIDGET (plug)->window;
event.focus_change.window = widget->window;
event.focus_change.send_event = TRUE;
event.focus_change.in = (message == XEMBED_FOCUS_IN);
gtk_widget_event (GTK_WIDGET (plug), &event);
if (message == XEMBED_FOCUS_IN)
{
event.focus_change.in = TRUE;
GTK_WIDGET_CLASS (parent_class)->focus_in_event (widget, (GdkEventFocus *)&event);
}
else
{
event.focus_change.in = FALSE;
GTK_WIDGET_CLASS (parent_class)->focus_out_event (widget, (GdkEventFocus *)&event);
}
break;
}
@@ -1072,7 +1075,7 @@ gtk_plug_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
}
}
else
break;
goto done;
}
if (xre->parent != GDK_ROOT_WINDOW ())
@@ -1107,7 +1110,8 @@ gtk_plug_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
if (!was_embedded)
g_signal_emit (G_OBJECT (plug), plug_signals[EMBEDDED], 0);
}
done:
g_object_unref (plug);
break;
+11 -3
View File
@@ -2041,8 +2041,12 @@ gtk_range_calc_layout (GtkRange *range,
/* slider height is the fraction (page_size /
* total_adjustment_range) times the trough height in pixels
*/
height = ((bottom - top) * (range->adjustment->page_size /
(range->adjustment->upper - range->adjustment->lower)));
if (range->adjustment->upper - range->adjustment->lower != 0)
height = ((bottom - top) * (range->adjustment->page_size /
(range->adjustment->upper - range->adjustment->lower)));
else
height = range->min_slider_size;
if (height < range->min_slider_size ||
range->slider_size_fixed)
@@ -2177,8 +2181,12 @@ gtk_range_calc_layout (GtkRange *range,
/* slider width is the fraction (page_size /
* total_adjustment_range) times the trough width in pixels
*/
width = ((right - left) * (range->adjustment->page_size /
if (range->adjustment->upper - range->adjustment->lower != 0)
width = ((right - left) * (range->adjustment->page_size /
(range->adjustment->upper - range->adjustment->lower)));
else
width = range->min_slider_size;
if (width < range->min_slider_size ||
range->slider_size_fixed)
+33 -9
View File
@@ -482,8 +482,10 @@ _gtk_rbtree_remove (GtkRBTree *tree)
gint height = tree->root->offset;
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
_gtk_rbtree_test (G_STRLOC, tree);
#endif
tmp_tree = tree->parent_tree;
tmp_node = tree->parent_node;
@@ -513,8 +515,10 @@ _gtk_rbtree_remove (GtkRBTree *tree)
tmp_node = tree->parent_node;
_gtk_rbtree_free (tree);
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
_gtk_rbtree_test (G_STRLOC, tmp_tree);
#endif
}
@@ -529,12 +533,14 @@ _gtk_rbtree_insert_after (GtkRBTree *tree,
GtkRBNode *tmp_node;
GtkRBTree *tmp_tree;
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
{
g_print ("\n\n_gtk_rbtree_insert_after: 0x%x\n", (gint) current);
g_print ("\n\n_gtk_rbtree_insert_after: %p\n", current);
_gtk_rbtree_debug_spew (tree);
_gtk_rbtree_test (G_STRLOC, tree);
}
#endif /* G_ENABLE_DEBUG */
if (current != NULL && current->right != tree->nil)
{
@@ -588,6 +594,7 @@ _gtk_rbtree_insert_after (GtkRBTree *tree,
_gtk_rbtree_insert_fixup (tree, node);
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
{
g_print ("_gtk_rbtree_insert_after finished...\n");
@@ -595,6 +602,7 @@ _gtk_rbtree_insert_after (GtkRBTree *tree,
g_print ("\n\n");
_gtk_rbtree_test (G_STRLOC, tree);
}
#endif /* G_ENABLE_DEBUG */
return node;
}
@@ -609,14 +617,16 @@ _gtk_rbtree_insert_before (GtkRBTree *tree,
gboolean left = TRUE;
GtkRBNode *tmp_node;
GtkRBTree *tmp_tree;
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
{
g_print ("\n\n_gtk_rbtree_insert_before: 0x%x\n", (gint) current);
g_print ("\n\n_gtk_rbtree_insert_before: %p\n", current);
_gtk_rbtree_debug_spew (tree);
_gtk_rbtree_test (G_STRLOC, tree);
}
#endif /* G_ENABLE_DEBUG */
if (current != NULL && current->left != tree->nil)
{
current = current->left;
@@ -670,6 +680,7 @@ _gtk_rbtree_insert_before (GtkRBTree *tree,
_gtk_rbtree_insert_fixup (tree, node);
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
{
g_print ("_gtk_rbtree_insert_before finished...\n");
@@ -677,7 +688,8 @@ _gtk_rbtree_insert_before (GtkRBTree *tree,
g_print ("\n\n");
_gtk_rbtree_test (G_STRLOC, tree);
}
#endif /* G_ENABLE_DEBUG */
return node;
}
@@ -725,8 +737,10 @@ _gtk_rbtree_node_set_height (GtkRBTree *tree,
tmp_tree = tmp_tree->parent_tree;
}
}
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
_gtk_rbtree_test (G_STRLOC, tree);
#endif
}
void
@@ -1196,20 +1210,26 @@ _gtk_rbtree_remove_node (GtkRBTree *tree,
g_return_if_fail (tree != NULL);
g_return_if_fail (node != NULL);
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
{
g_print ("\n\n_gtk_rbtree_remove_node: 0x%x\n", (gint) node);
g_print ("\n\n_gtk_rbtree_remove_node: %p\n", node);
_gtk_rbtree_debug_spew (tree);
_gtk_rbtree_test (G_STRLOC, tree);
}
#endif /* G_ENABLE_DEBUG */
/* make sure we're deleting a node that's actually in the tree */
for (x = node; x->parent != tree->nil; x = x->parent)
;
g_return_if_fail (x == tree->root);
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
_gtk_rbtree_test (G_STRLOC, tree);
#endif
if (node->left == tree->nil || node->right == tree->nil)
{
y = node;
@@ -1335,6 +1355,7 @@ _gtk_rbtree_remove_node (GtkRBTree *tree,
_gtk_rbtree_remove_node_fixup (tree, x);
_gtk_rbnode_free (y);
#ifdef G_ENABLE_DEBUG
if (gtk_debug_flags & GTK_DEBUG_TREE)
{
g_print ("_gtk_rbtree_remove_node finished...\n");
@@ -1342,6 +1363,7 @@ _gtk_rbtree_remove_node (GtkRBTree *tree,
g_print ("\n\n");
_gtk_rbtree_test (G_STRLOC, tree);
}
#endif /* G_ENABLE_DEBUG */
}
GtkRBNode *
@@ -1585,6 +1607,7 @@ void _fixup_parity (GtkRBTree *tree,
((node->right != tree->nil) ? node->right->parity : 0);
}
#ifdef G_ENABLE_DEBUG
static guint
get_parity (GtkRBNode *node)
{
@@ -1785,8 +1808,8 @@ _gtk_rbtree_debug_spew_helper (GtkRBTree *tree,
for (i = 0; i < depth; i++)
g_print ("\t");
g_print ("(0x%x - %s) (Offset %d) (Parity %d) (Validity %d%d%d)\n",
(gint) node,
g_print ("(%p - %s) (Offset %d) (Parity %d) (Validity %d%d%d)\n",
node,
(GTK_RBNODE_GET_COLOR (node) == GTK_RBNODE_BLACK)?"BLACK":" RED ",
node->offset,
node->parity?1:0,
@@ -1819,3 +1842,4 @@ _gtk_rbtree_debug_spew (GtkRBTree *tree)
else
_gtk_rbtree_debug_spew_helper (tree, tree->root, 0);
}
#endif /* G_ENABLE_DEBUG */
+2 -1
View File
@@ -171,10 +171,11 @@ void _gtk_rbtree_prev_full (GtkRBTree *tree,
gint _gtk_rbtree_get_depth (GtkRBTree *tree);
/* This func checks the integrity of the tree */
#ifdef G_ENABLE_DEBUG
void _gtk_rbtree_test (const gchar *where,
GtkRBTree *tree);
void _gtk_rbtree_debug_spew (GtkRBTree *tree);
#endif
#ifdef __cplusplus
}
+12 -2
View File
@@ -299,9 +299,9 @@ gtk_rc_make_default_dir (const gchar *type)
var = g_getenv ("GTK_EXE_PREFIX");
if (var)
path = g_build_filename (var, "lib", "gtk-2.0", type, GTK_BINARY_VERSION, NULL);
path = g_build_filename (var, "lib", "gtk-2.0", GTK_BINARY_VERSION, type, NULL);
else
path = g_build_filename (GTK_LIBDIR, "gtk-2.0", type, GTK_BINARY_VERSION, NULL);
path = g_build_filename (GTK_LIBDIR, "gtk-2.0", GTK_BINARY_VERSION, type, NULL);
return path;
}
@@ -367,6 +367,16 @@ gtk_rc_get_theme_dir (void)
return path;
}
/**
* gtk_rc_get_module_dir:
*
* Returns a directory in which GTK+ looks for theme engines.
* For full information about the search for theme engines,
* see the docs for <envvar>GTK_PATH</envvar> in
* <xref linkend="gtk-running">.
*
* return value: the directory. (Must be freed with g_free())
**/
gchar *
gtk_rc_get_module_dir (void)
{
-2
View File
@@ -324,8 +324,6 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window)
{
GTK_WIDGET_SET_FLAGS (scrolled_window, GTK_NO_WINDOW | GTK_CAN_FOCUS);
gtk_container_set_resize_mode (GTK_CONTAINER (scrolled_window), GTK_RESIZE_QUEUE);
scrolled_window->hscrollbar = NULL;
scrolled_window->vscrollbar = NULL;
scrolled_window->hscrollbar_policy = GTK_POLICY_ALWAYS;
+14 -10
View File
@@ -62,27 +62,31 @@ G_BEGIN_DECLS
#define gtk_signal_handler_unblock(object,handler_id) \
g_signal_handler_unblock ((object), (handler_id))
#define gtk_signal_disconnect_by_func(object,func,data) \
gtk_signal_compat_matched ((object), (func), (data), G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA, 0)
gtk_signal_compat_matched ((object), (func), (data), \
(GSignalMatchType)(G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA), 0)
#define gtk_signal_disconnect_by_data(object,data) \
gtk_signal_compat_matched ((object), 0, (data), G_SIGNAL_MATCH_DATA, 0)
#define gtk_signal_handler_block_by_func(object,func,data) \
gtk_signal_compat_matched ((object), (func), (data), G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA, 1)
gtk_signal_compat_matched ((object), (func), (data), \
(GSignalMatchType)(G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA), 1)
#define gtk_signal_handler_block_by_data(object,data) \
gtk_signal_compat_matched ((object), 0, (data), G_SIGNAL_MATCH_DATA, 1)
#define gtk_signal_handler_unblock_by_func(object,func,data) \
gtk_signal_compat_matched ((object), (func), (data), G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA, 2)
gtk_signal_compat_matched ((object), (func), (data), \
(GSignalMatchType)(G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA), 2)
#define gtk_signal_handler_unblock_by_data(object,data) \
gtk_signal_compat_matched ((object), 0, (data), G_SIGNAL_MATCH_DATA, 2)
#define gtk_signal_handler_pending(object,signal_id,may_be_blocked) \
g_signal_has_handler_pending ((object), (signal_id), 0, (may_be_blocked))
#define gtk_signal_handler_pending_by_func(object,signal_id,may_be_blocked,func,data) \
(g_signal_handler_find ((object), G_SIGNAL_MATCH_ID | \
G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA | \
((may_be_blocked) ? 0 : G_SIGNAL_MATCH_UNBLOCKED),\
(g_signal_handler_find ((object), \
(GSignalMatchType)(G_SIGNAL_MATCH_ID | \
G_SIGNAL_MATCH_FUNC | \
G_SIGNAL_MATCH_DATA | \
((may_be_blocked) ? 0 : G_SIGNAL_MATCH_UNBLOCKED)),\
(signal_id), 0, 0, (func), (data)) != 0)
+78 -135
View File
@@ -39,6 +39,13 @@
#include "xembed.h"
typedef struct _GtkSocketPrivate GtkSocketPrivate;
struct _GtkSocketPrivate
{
gint resize_count;
};
/* Forward declararations */
static void gtk_socket_class_init (GtkSocketClass *klass);
@@ -104,6 +111,29 @@ static guint socket_signals[LAST_SIGNAL] = { 0 };
static GtkWidgetClass *parent_class = NULL;
GtkSocketPrivate *
gtk_socket_get_private (GtkSocket *socket)
{
GtkSocketPrivate *private;
static GQuark private_quark = 0;
if (!private_quark)
private_quark = g_quark_from_static_string ("gtk-socket-private");
private = g_object_get_qdata (G_OBJECT (socket), private_quark);
if (!private)
{
private = g_new0 (GtkSocketPrivate, 1);
private->resize_count = 0;
g_object_set_qdata_full (G_OBJECT (socket), private_quark,
private, (GDestroyNotify) g_free);
}
return private;
}
GtkType
gtk_socket_get_type (void)
{
@@ -358,6 +388,7 @@ gtk_socket_realize (GtkWidget *widget)
static void
gtk_socket_end_embedding (GtkSocket *socket)
{
GtkSocketPrivate *private = gtk_socket_get_private (socket);
GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (socket));
gint i;
@@ -367,6 +398,7 @@ gtk_socket_end_embedding (GtkSocket *socket)
g_object_unref (socket->plug_window);
socket->plug_window = NULL;
private->resize_count = 0;
/* Remove from end to avoid indexes shifting. This is evil */
for (i = socket->accel_group->n_accels - 1; i >= 0; i--)
@@ -414,19 +446,15 @@ gtk_socket_size_request (GtkWidget *widget,
long supplied;
gdk_error_trap_push ();
socket->request_width = 1;
socket->request_height = 1;
if (XGetWMNormalHints (GDK_DISPLAY(),
GDK_WINDOW_XWINDOW (socket->plug_window),
&hints, &supplied))
{
/* This is obsolete, according the X docs, but many programs
* still use it */
if (hints.flags & (PSize | USSize))
{
socket->request_width = hints.width;
socket->request_height = hints.height;
}
else if (hints.flags & PMinSize)
if (hints.flags & PMinSize)
{
socket->request_width = hints.min_width;
socket->request_height = hints.min_height;
@@ -437,7 +465,7 @@ gtk_socket_size_request (GtkWidget *widget,
socket->request_height = hints.base_height;
}
}
socket->have_size = TRUE; /* don't check again? */
socket->have_size = TRUE;
gdk_error_trap_pop ();
}
@@ -486,22 +514,19 @@ gtk_socket_size_allocate (GtkWidget *widget,
}
else if (socket->plug_window)
{
GtkSocketPrivate *private = gtk_socket_get_private (socket);
gdk_error_trap_push ();
if (!socket->need_map &&
(allocation->width == socket->current_width) &&
(allocation->height == socket->current_height))
{
gtk_socket_send_configure_event (socket);
GTK_NOTE(PLUGSOCKET,
g_message ("GtkSocket - allocated no change: %d %d",
allocation->width, allocation->height));
}
else
if (allocation->width != socket->current_width ||
allocation->height != socket->current_height)
{
gdk_window_move_resize (socket->plug_window,
0, 0,
allocation->width, allocation->height);
if (private->resize_count)
private->resize_count--;
GTK_NOTE(PLUGSOCKET,
g_message ("GtkSocket - allocated: %d %d",
allocation->width, allocation->height));
@@ -515,6 +540,15 @@ gtk_socket_size_allocate (GtkWidget *widget,
socket->need_map = FALSE;
}
while (private->resize_count)
{
gtk_socket_send_configure_event (socket);
private->resize_count--;
GTK_NOTE(PLUGSOCKET,
g_message ("GtkSocket - sending synthetic configure: %d %d",
allocation->width, allocation->height));
}
gdk_flush ();
gdk_error_trap_pop ();
}
@@ -753,19 +787,6 @@ gtk_socket_focus_out_event (GtkWidget *widget, GdkEventFocus *event)
{
GtkSocket *socket = GTK_SOCKET (widget);
#if 0
GtkWidget *toplevel;
toplevel = gtk_widget_get_toplevel (widget);
if (toplevel && GTK_IS_WINDOW (toplevel))
{
XSetInputFocus (GDK_DISPLAY (),
GDK_WINDOW_XWINDOW (toplevel->window),
RevertToParent, CurrentTime); /* FIXME? */
}
#endif
if (socket->plug_window)
{
send_xembed_message (socket, XEMBED_FOCUS_OUT, 0, 0, 0,
@@ -788,20 +809,6 @@ gtk_socket_claim_focus (GtkSocket *socket)
GTK_WIDGET_SET_FLAGS (socket, GTK_CAN_FOCUS);
gtk_widget_grab_focus (GTK_WIDGET (socket));
GTK_WIDGET_UNSET_FLAGS (socket, GTK_CAN_FOCUS);
/* FIXME: we might grab the focus even if we don't have
* it as an app... (and see _focus_in ()) */
if (socket->plug_window)
{
#if 0
gdk_error_trap_push ();
XSetInputFocus (GDK_DISPLAY (),
GDK_WINDOW_XWINDOW (socket->plug_window),
RevertToParent, GDK_CURRENT_TIME);
gdk_flush ();
gdk_error_trap_pop ();
#endif
}
}
static gboolean
@@ -843,66 +850,6 @@ gtk_socket_focus (GtkWidget *widget, GtkDirectionType direction)
}
else
return FALSE;
#if 0
if (!socket->focus_in && socket->plug_window)
{
XEvent xevent;
gtk_socket_claim_focus (socket);
xevent.xkey.type = KeyPress;
xevent.xkey.display = GDK_DISPLAY ();
xevent.xkey.window = GDK_WINDOW_XWINDOW (socket->plug_window);
xevent.xkey.root = GDK_ROOT_WINDOW (); /* FIXME */
xevent.xkey.time = GDK_CURRENT_TIME; /* FIXME */
/* FIXME, the following might cause big problems for
* non-GTK apps */
xevent.xkey.x = 0;
xevent.xkey.y = 0;
xevent.xkey.x_root = 0;
xevent.xkey.y_root = 0;
xevent.xkey.state = 0;
xevent.xkey.same_screen = TRUE; /* FIXME ? */
switch (direction)
{
case GTK_DIR_UP:
xevent.xkey.keycode = XKeysymToKeycode(GDK_DISPLAY(), GDK_Up);
break;
case GTK_DIR_DOWN:
xevent.xkey.keycode = XKeysymToKeycode(GDK_DISPLAY(), GDK_Down);
break;
case GTK_DIR_LEFT:
xevent.xkey.keycode = XKeysymToKeycode(GDK_DISPLAY(), GDK_Left);
break;
case GTK_DIR_RIGHT:
xevent.xkey.keycode = XKeysymToKeycode(GDK_DISPLAY(), GDK_Right);
break;
case GTK_DIR_TAB_FORWARD:
xevent.xkey.keycode = XKeysymToKeycode(GDK_DISPLAY(), GDK_Tab);
break;
case GTK_DIR_TAB_BACKWARD:
xevent.xkey.keycode = XKeysymToKeycode(GDK_DISPLAY(), GDK_Tab);
xevent.xkey.state = ShiftMask;
break;
}
gdk_error_trap_push ();
XSendEvent (GDK_DISPLAY (),
GDK_WINDOW_XWINDOW (socket->plug_window),
False, NoEventMask, &xevent);
gdk_flush();
gdk_error_trap_pop ();
return TRUE;
}
else
{
return FALSE;
}
#endif
}
static void
@@ -932,6 +879,7 @@ static void
gtk_socket_send_configure_event (GtkSocket *socket)
{
XEvent event;
gint x, y;
g_return_if_fail (socket->plug_window != NULL);
@@ -941,8 +889,16 @@ gtk_socket_send_configure_event (GtkSocket *socket)
event.xconfigure.event = GDK_WINDOW_XWINDOW (socket->plug_window);
event.xconfigure.window = GDK_WINDOW_XWINDOW (socket->plug_window);
event.xconfigure.x = 0;
event.xconfigure.y = 0;
/* The ICCCM says that synthetic events should have root relative
* coordinates. We still aren't really ICCCM compliant, since
* we don't send events when the real toplevel is moved.
*/
gdk_error_trap_push ();
gdk_window_get_origin (socket->plug_window, &x, &y);
gdk_error_trap_pop ();
event.xconfigure.x = x;
event.xconfigure.y = y;
event.xconfigure.width = GTK_WIDGET(socket)->allocation.width;
event.xconfigure.height = GTK_WIDGET(socket)->allocation.height;
@@ -1165,6 +1121,9 @@ handle_xembed_message (GtkSocket *socket,
glong data2,
guint32 time)
{
GTK_NOTE (PLUGSOCKET,
g_message ("GtkPlug: Message of type %ld received", message));
switch (message)
{
case XEMBED_EMBEDDED_NOTIFY:
@@ -1279,14 +1238,8 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
if (socket->plug_window)
{
socket->request_width = xcwe->width;
socket->request_height = xcwe->height;
socket->have_size = TRUE;
GTK_NOTE(PLUGSOCKET,
g_message ("GtkSocket - window created with size: %d %d",
socket->request_width,
socket->request_height));
g_message ("GtkSocket - window created"));
}
}
@@ -1304,17 +1257,16 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
if (socket->plug_window)
{
GtkSocketPrivate *private = gtk_socket_get_private (socket);
if (xcre->value_mask & (CWWidth | CWHeight))
{
socket->request_width = xcre->width;
socket->request_height = xcre->height;
socket->have_size = TRUE;
GTK_NOTE(PLUGSOCKET,
g_message ("GtkSocket - configure request: %d %d",
socket->request_width,
socket->request_height));
private->resize_count++;
gtk_widget_queue_resize (widget);
}
else if (xcre->value_mask & (CWX | CWY))
@@ -1361,20 +1313,6 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
{
gtk_socket_claim_focus (socket);
}
else if (xevent->xfocus.detail == NotifyInferior)
{
#if 0
GtkWidget *toplevel;
toplevel = gtk_widget_get_toplevel (widget);
if (toplevel && GTK_IS_WINDOW (topelevel))
{
XSetInputFocus (GDK_DISPLAY (),
GDK_WINDOW_XWINDOW (toplevel->window),
RevertToParent, CurrentTime); /* FIXME? */
}
#endif
}
return_val = GDK_FILTER_REMOVE;
break;
case FocusOut:
@@ -1399,7 +1337,12 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
{
GdkDragProtocol protocol;
if ((xevent->xproperty.atom == gdk_x11_get_xatom_by_name ("XdndAware")) ||
if (xevent->xproperty.atom == gdk_x11_get_xatom_by_name ("WM_NORMAL_HINTS"))
{
socket->have_size = FALSE;
gtk_widget_queue_resize (widget);
}
else if ((xevent->xproperty.atom == gdk_x11_get_xatom_by_name ("XdndAware")) ||
(xevent->xproperty.atom == gdk_x11_get_xatom_by_name ("_MOTIF_DRAG_RECEIVER_INFO")))
{
gdk_error_trap_push ();
+28 -10
View File
@@ -498,19 +498,24 @@ _gtk_text_btree_unref (GtkTextBTree *tree)
tree->refcount -= 1;
if (tree->refcount == 0)
{
gtk_text_btree_node_destroy (tree, tree->root_node);
g_assert (g_hash_table_size (tree->mark_table) == 0);
g_hash_table_destroy (tree->mark_table);
g_object_unref (G_OBJECT (tree->insert_mark));
g_object_unref (G_OBJECT (tree->selection_bound_mark));
{
g_signal_handler_disconnect (G_OBJECT (tree->table),
tree->tag_changed_handler);
g_object_unref (G_OBJECT (tree->table));
tree->table = NULL;
gtk_text_btree_node_destroy (tree, tree->root_node);
tree->root_node = NULL;
g_assert (g_hash_table_size (tree->mark_table) == 0);
g_hash_table_destroy (tree->mark_table);
tree->mark_table = NULL;
g_object_unref (G_OBJECT (tree->insert_mark));
tree->insert_mark = NULL;
g_object_unref (G_OBJECT (tree->selection_bound_mark));
tree->selection_bound_mark = NULL;
g_free (tree);
}
@@ -1678,7 +1683,7 @@ _gtk_text_btree_tag (const GtkTextIter *start_orig,
g_assert (seg != NULL);
g_assert (indexable_seg != NULL);
g_assert (seg != indexable_seg);
if ( (seg->type == &gtk_text_toggle_on_type ||
seg->type == &gtk_text_toggle_off_type) &&
(seg->body.toggle.info == info) )
@@ -5773,6 +5778,12 @@ gtk_text_btree_get_tag_info (GtkTextBTree *tree,
info->toggle_count = 0;
tree->tag_infos = g_slist_prepend (tree->tag_infos, info);
#if 0
g_print ("Created tag info %p for tag %s(%p)\n",
info, info->tag->name ? info->tag->name : "anon",
info->tag);
#endif
}
return info;
@@ -5793,6 +5804,12 @@ gtk_text_btree_remove_tag_info (GtkTextBTree *tree,
info = list->data;
if (info->tag == tag)
{
#if 0
g_print ("Removing tag info %p for tag %s(%p)\n",
info, info->tag->name ? info->tag->name : "anon",
info->tag);
#endif
if (prev != NULL)
{
prev->next = list->next;
@@ -5810,6 +5827,7 @@ gtk_text_btree_remove_tag_info (GtkTextBTree *tree,
return;
}
prev = list;
list = g_slist_next (list);
}
}
+3 -2
View File
@@ -4322,8 +4322,9 @@ strbreakup (const char *string,
* @match_end: return location for end of match, or %NULL
* @limit: bound for the search, or %NULL for the end of the buffer
*
* Searches forward for @str. Any match is returned as the range
* @match_start, @match_end. The search will not continue past
* Searches forward for @str. Any match is returned by setting
* @match_start to the first character of the match and @match_end to the
* first character after the match. The search will not continue past
* @limit. Note that a search is a linear or O(n) operation, so you
* may wish to use @limit to avoid locking up your UI on large
* buffers.
+4 -10
View File
@@ -719,11 +719,10 @@ gtk_text_layout_real_invalidate (GtkTextLayout *layout,
{
GtkTextLineData *line_data = _gtk_text_line_get_data (line, layout);
gtk_text_layout_invalidate_cache (layout, line);
if (line_data)
{
gtk_text_layout_invalidate_cache (layout, line);
_gtk_text_line_invalidate_wrap (line, line_data);
}
_gtk_text_line_invalidate_wrap (line, line_data);
if (line == last_line)
break;
@@ -739,12 +738,7 @@ gtk_text_layout_real_free_line_data (GtkTextLayout *layout,
GtkTextLine *line,
GtkTextLineData *line_data)
{
if (layout->one_display_cache && line == layout->one_display_cache->line)
{
GtkTextLineDisplay *tmp_display = layout->one_display_cache;
layout->one_display_cache = NULL;
gtk_text_layout_free_line_display (layout, tmp_display);
}
gtk_text_layout_invalidate_cache (layout, line);
g_free (line_data);
}
+13 -1
View File
@@ -160,7 +160,7 @@ gtk_text_tag_table_finalize (GObject *object)
GtkTextTagTable *table;
table = GTK_TEXT_TAG_TABLE (object);
gtk_text_tag_table_foreach (table, foreach_unref, NULL);
g_hash_table_destroy (table->hash);
@@ -406,11 +406,23 @@ _gtk_text_tag_table_add_buffer (GtkTextTagTable *table,
table->buffers = g_slist_prepend (table->buffers, buffer);
}
static void
foreach_remove_tag (GtkTextTag *tag, gpointer data)
{
GtkTextBuffer *buffer;
buffer = GTK_TEXT_BUFFER (data);
_gtk_text_buffer_notify_will_remove_tag (buffer, tag);
}
void
_gtk_text_tag_table_remove_buffer (GtkTextTagTable *table,
gpointer buffer)
{
g_return_if_fail (GTK_IS_TEXT_TAG_TABLE (table));
gtk_text_tag_table_foreach (table, foreach_remove_tag, buffer);
table->buffers = g_slist_remove (table->buffers, buffer);
}
+16 -3
View File
@@ -1190,8 +1190,9 @@ gtk_text_view_get_iter_at_location (GtkTextView *text_view,
{
g_return_if_fail (GTK_IS_TEXT_VIEW (text_view));
g_return_if_fail (iter != NULL);
g_return_if_fail (text_view->layout != NULL);
gtk_text_view_ensure_layout (text_view);
gtk_text_layout_get_iter_at_pixel (text_view->layout,
iter,
x,
@@ -1218,6 +1219,8 @@ gtk_text_view_get_iter_location (GtkTextView *text_view,
g_return_if_fail (GTK_IS_TEXT_VIEW (text_view));
g_return_if_fail (gtk_text_iter_get_buffer (iter) == get_buffer (text_view));
gtk_text_view_ensure_layout (text_view);
gtk_text_layout_get_iter_location (text_view->layout, iter, location);
}
@@ -1242,6 +1245,8 @@ gtk_text_view_get_line_yrange (GtkTextView *text_view,
g_return_if_fail (GTK_IS_TEXT_VIEW (text_view));
g_return_if_fail (gtk_text_iter_get_buffer (iter) == get_buffer (text_view));
gtk_text_view_ensure_layout (text_view);
gtk_text_layout_get_line_yrange (text_view->layout,
iter,
y,
@@ -1269,6 +1274,8 @@ gtk_text_view_get_line_at_y (GtkTextView *text_view,
{
g_return_if_fail (GTK_IS_TEXT_VIEW (text_view));
gtk_text_view_ensure_layout (text_view);
gtk_text_layout_get_line_at_y (text_view->layout,
target_iter,
y,
@@ -6845,7 +6852,7 @@ buffer_to_text_window (GtkTextView *text_view,
/**
* gtk_text_view_buffer_to_window_coords:
* @text_view: a #GtkTextView
* @win: a #GtkTextWindowType
* @win: a #GtkTextWindowType except #GTK_TEXT_WINDOW_PRIVATE
* @buffer_x: buffer x coordinate
* @buffer_y: buffer y coordinate
* @window_x: window x coordinate return location
@@ -6853,6 +6860,9 @@ buffer_to_text_window (GtkTextView *text_view,
*
* Converts coordinate (@buffer_x, @buffer_y) to coordinates for the window
* @win, and stores the result in (@window_x, @window_y).
*
* Note that you can't convert coordinates for a nonexisting window (see
* gtk_text_view_set_border_window_size()).
**/
void
gtk_text_view_buffer_to_window_coords (GtkTextView *text_view,
@@ -6982,7 +6992,7 @@ text_window_to_buffer (GtkTextView *text_view,
/**
* gtk_text_view_window_to_buffer_coords:
* @text_view: a #GtkTextView
* @win: a #GtkTextWindowType
* @win: a #GtkTextWindowType except #GTK_TEXT_WINDOW_PRIVATE
* @window_x: window x coordinate
* @window_y: window y coordinate
* @buffer_x: buffer x coordinate return location
@@ -6990,6 +7000,9 @@ text_window_to_buffer (GtkTextView *text_view,
*
* Converts coordinates on the window identified by @win to buffer
* coordinates, storing the result in (@buffer_x,@buffer_y).
*
* Note that you can't convert coordinates for a nonexisting window (see
* gtk_text_view_set_border_window_size()).
**/
void
gtk_text_view_window_to_buffer_coords (GtkTextView *text_view,
+43 -19
View File
@@ -30,6 +30,8 @@
#include "gtklabel.h"
#include "gtkmain.h"
#include "gtkmenuitem.h"
#include "gtkprivate.h"
#include "gtkwidget.h"
#include "gtkwindow.h"
#include "gtksignal.h"
@@ -513,6 +515,31 @@ stop_keyboard_mode (GtkWidget *widget)
}
}
static void
gtk_tooltips_start_delay (GtkTooltips *tooltips,
GtkWidget *widget)
{
GtkTooltipsData *old_tips_data;
old_tips_data = tooltips->active_tips_data;
if (tooltips->enabled &&
(!old_tips_data || old_tips_data->widget != widget))
{
guint delay;
gtk_tooltips_set_active_widget (tooltips, widget);
if (tooltips->use_sticky_delay &&
gtk_tooltips_recently_shown (tooltips))
delay = STICKY_DELAY;
else
delay = tooltips->delay;
tooltips->timer_tag = gtk_timeout_add (delay,
gtk_tooltips_timeout,
(gpointer) tooltips);
}
}
static void
gtk_tooltips_event_handler (GtkWidget *widget,
GdkEvent *event)
@@ -554,29 +581,12 @@ gtk_tooltips_event_handler (GtkWidget *widget,
switch (event->type)
{
case GDK_MOTION_NOTIFY:
case GDK_EXPOSE:
/* do nothing */
break;
case GDK_ENTER_NOTIFY:
old_tips_data = tooltips->active_tips_data;
if (tooltips->enabled &&
(!old_tips_data || old_tips_data->widget != widget))
{
guint delay;
gtk_tooltips_set_active_widget (tooltips, widget);
if (tooltips->use_sticky_delay &&
gtk_tooltips_recently_shown (tooltips))
delay = STICKY_DELAY;
else
delay = tooltips->delay;
tooltips->timer_tag = gtk_timeout_add (delay,
gtk_tooltips_timeout,
(gpointer) tooltips);
}
if (!(GTK_IS_MENU_ITEM (widget) && GTK_MENU_ITEM (widget)->submenu))
gtk_tooltips_start_delay (tooltips, widget);
break;
case GDK_LEAVE_NOTIFY:
@@ -590,6 +600,20 @@ gtk_tooltips_event_handler (GtkWidget *widget,
}
break;
case GDK_MOTION_NOTIFY:
/* Handle menu items specially ... pend popup for each motion
* on other widgets, we ignore motion.
*/
if (GTK_IS_MENU_ITEM (widget) && !GTK_MENU_ITEM (widget)->submenu)
{
/* Completely evil hack to make sure we get the LEAVE_NOTIFY
*/
GTK_PRIVATE_SET_FLAG (widget, GTK_LEAVE_PENDING);
gtk_tooltips_set_active_widget (tooltips, NULL);
gtk_tooltips_start_delay (tooltips, widget);
break;
}
break; /* ignore */
case GDK_BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
case GDK_KEY_PRESS:
+25 -1
View File
@@ -29,6 +29,15 @@
#include "gtksignal.h"
#define INITIALIZE_TREE_ITER(Iter) \
G_STMT_START{ \
(Iter)->stamp = 0; \
(Iter)->user_data = NULL; \
(Iter)->user_data2 = NULL; \
(Iter)->user_data3 = NULL; \
}G_STMT_END
struct _GtkTreePath
{
gint depth;
@@ -674,6 +683,8 @@ gtk_tree_model_get_iter (GtkTreeModel *tree_model,
g_return_val_if_fail (GTK_TREE_MODEL_GET_IFACE (tree_model)->get_iter != NULL, FALSE);
g_return_val_if_fail (path->depth > 0, FALSE);
INITIALIZE_TREE_ITER (iter);
return (* GTK_TREE_MODEL_GET_IFACE (tree_model)->get_iter) (tree_model, iter, path);
}
@@ -825,6 +836,8 @@ gtk_tree_model_iter_children (GtkTreeModel *tree_model,
g_return_val_if_fail (iter != NULL, FALSE);
g_return_val_if_fail (GTK_TREE_MODEL_GET_IFACE (tree_model)->iter_children != NULL, FALSE);
INITIALIZE_TREE_ITER (iter);
return (* GTK_TREE_MODEL_GET_IFACE (tree_model)->iter_children) (tree_model, iter, parent);
}
@@ -894,6 +907,8 @@ gtk_tree_model_iter_nth_child (GtkTreeModel *tree_model,
g_return_val_if_fail (n >= 0, FALSE);
g_return_val_if_fail (GTK_TREE_MODEL_GET_IFACE (tree_model)->iter_nth_child != NULL, FALSE);
INITIALIZE_TREE_ITER (iter);
return (* GTK_TREE_MODEL_GET_IFACE (tree_model)->iter_nth_child) (tree_model, iter, parent, n);
}
@@ -920,6 +935,8 @@ gtk_tree_model_iter_parent (GtkTreeModel *tree_model,
g_return_val_if_fail (child != NULL, FALSE);
g_return_val_if_fail (GTK_TREE_MODEL_GET_IFACE (tree_model)->iter_parent != NULL, FALSE);
INITIALIZE_TREE_ITER (iter);
return (* GTK_TREE_MODEL_GET_IFACE (tree_model)->iter_parent) (tree_model, iter, child);
}
@@ -1368,7 +1385,14 @@ gtk_tree_row_ref_deleted_callback (GObject *object,
/* We know it affects us. */
if (path->indices[i] == reference->path->indices[i])
{
gtk_tree_row_reference_unref_path (reference->path, reference->model, reference->path->depth - 1);
if (reference->path->depth > path->depth)
/* some parent was deleted, trying to unref any node
* between the deleted parent and the node the reference
* is pointing to is bad, as those nodes are already gone.
*/
gtk_tree_row_reference_unref_path (reference->path, reference->model, path->depth - 1);
else
gtk_tree_row_reference_unref_path (reference->path, reference->model, reference->path->depth - 1);
gtk_tree_path_free (reference->path);
reference->path = NULL;
}
+29 -12
View File
@@ -1272,10 +1272,14 @@ gtk_tree_model_sort_set_sort_func (GtkTreeSortable *sortable,
for (list = tree_model_sort->sort_list; list; list = list->next)
{
header = (GtkTreeDataSortHeader *) list->data;
GtkTreeDataSortHeader *list_header;
if (header->sort_column_id == sort_column_id)
break;
list_header = (GtkTreeDataSortHeader*) list->data;
if (list_header->sort_column_id == sort_column_id)
{
header = list_header;
break;
}
}
if (header == NULL)
@@ -1937,9 +1941,10 @@ gtk_tree_model_sort_convert_child_iter_to_iter (GtkTreeModelSort *tree_model_sor
* @tree_model_sort: A #GtkTreeModelSort
* @sorted_path: A #GtkTreePath to convert
*
* Converts @sort_path to a path on the child model of @tree_model_sort. That
* is, @sort_path points ot a location in @tree_model_sort. The returned path
* will point to the same location in the model not being sorted. If @path does not point to a
* Converts @sorted_path to a path on the child model of @tree_model_sort. That
* is, @sorted_path points to a location in @tree_model_sort. The returned path
* will point to the same location in the model not being sorted. If @sorted_path
* does not point to a location in the child model, %NULL is returned.
*
* Return value: A newly allocated #GtkTreePath, or %NULL
**/
@@ -1964,19 +1969,26 @@ gtk_tree_model_sort_convert_path_to_child_path (GtkTreeModelSort *tree_model_sor
for (i = 0; i < gtk_tree_path_get_depth (sorted_path); i++)
{
gint count = sorted_indices[i];
if ((level == NULL) ||
(level->array->len <= sorted_indices[i]))
(level->array->len <= count))
{
gtk_tree_path_free (retval);
return NULL;
}
if (g_array_index (level->array, SortElt, sorted_indices[i]).children == NULL)
gtk_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, sorted_indices[i]));
if (g_array_index (level->array, SortElt, count).children == NULL)
gtk_tree_model_sort_build_level (tree_model_sort, level, &g_array_index (level->array, SortElt, count));
if (level == NULL)
break;
{
gtk_tree_path_free (retval);
break;
}
gtk_tree_path_append_index (retval, g_array_index (level->array, SortElt, i).offset);
gtk_tree_path_append_index (retval, g_array_index (level->array, SortElt, count).offset);
level = g_array_index (level->array, SortElt, count).children;
}
return retval;
@@ -2192,7 +2204,9 @@ gtk_tree_model_sort_clear_cache_helper (GtkTreeModelSort *tree_model_sort,
* @tree_model_sort: A #GtkTreeModelSort
*
* This resets the default sort function to be in the 'unsorted' state. That
* is, it is in the same order as the child model.
* is, it is in the same order as the child model. It will re-sort the model
* to be in the same order as the child model only if the #GtkTreeModelSort
* is in 'unsorted' state.
**/
void
gtk_tree_model_sort_reset_default_sort_func (GtkTreeModelSort *tree_model_sort)
@@ -2210,6 +2224,9 @@ gtk_tree_model_sort_reset_default_sort_func (GtkTreeModelSort *tree_model_sort)
tree_model_sort->default_sort_func = NO_SORT_FUNC;
tree_model_sort->default_sort_data = NULL;
tree_model_sort->default_sort_destroy = NULL;
if (tree_model_sort->sort_column_id == GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID)
gtk_tree_model_sort_sort (tree_model_sort);
tree_model_sort->sort_column_id = GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
}
+7 -3
View File
@@ -101,8 +101,8 @@ struct _GtkTreeViewPrivate
GdkWindow *drag_highlight_window;
GtkTreeViewColumn *drag_column;
GtkTreeRowReference *last_single_clicked;
GtkTreeRowReference *last_single_clicked_2;
GtkTreeRowReference *last_button_press;
GtkTreeRowReference *last_button_press_2;
/* bin_window offset */
GtkTreeRowReference *top_row;
@@ -311,9 +311,13 @@ gboolean _gtk_tree_view_column_cell_event (GtkTreeViewColumn *tree_column,
void _gtk_tree_view_column_start_editing (GtkTreeViewColumn *tree_column,
GtkCellEditable *editable_widget);
void _gtk_tree_view_column_stop_editing (GtkTreeViewColumn *tree_column);
void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view);
void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view);
void _gtk_tree_view_column_autosize (GtkTreeView *tree_view,
GtkTreeViewColumn *column);
gboolean _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column);
GtkCellRenderer *_gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column);
gint _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column);
GtkTreeSelection* _gtk_tree_selection_new (void);
GtkTreeSelection* _gtk_tree_selection_new_with_tree_view (GtkTreeView *tree_view);
+6 -4
View File
@@ -1137,10 +1137,10 @@ gtk_tree_store_insert (GtkTreeStore *tree_store,
* @sibling: A valid #GtkTreeIter, or %NULL
*
* Inserts a new row before @sibling. If @sibling is %NULL, then the row will
* be appended to the beginning of the @parent 's children. If @parent and
* @sibling are %NULL, then the row will be appended to the toplevel. If both
* @sibling and @parent are set, then @parent must be the parent of @sibling.
* When @sibling is set, @parent is optional.
* be appended to @parent 's children. If @parent and @sibling are %NULL, then
* the row will be appended to the toplevel. If both @sibling and @parent are
* set, then @parent must be the parent of @sibling. When @sibling is set,
* @parent is optional.
*
* @iter will be changed to point to this new row. The row will be empty after
* this function is called. To fill in values, you need to call
@@ -2042,6 +2042,7 @@ gtk_tree_store_sort_iter_changed (GtkTreeStore *tree_store,
prev->next = next;
else
node->parent->children = next;
if (next)
next->prev = prev;
@@ -2086,6 +2087,7 @@ gtk_tree_store_sort_iter_changed (GtkTreeStore *tree_store,
else
{
G_NODE (iter->user_data)->next = G_NODE (iter->user_data)->parent->children;
G_NODE (iter->user_data)->next->prev = G_NODE (iter->user_data);
G_NODE (iter->user_data)->parent->children = G_NODE (iter->user_data);
}
+168 -92
View File
@@ -347,8 +347,6 @@ static void gtk_tree_view_real_set_cursor (GtkTreeView
GtkTreePath *path,
gboolean clear_and_select,
gboolean clamp_node);
static void gtk_tree_view_column_autosize (GtkTreeView *tree_view,
GtkTreeViewColumn *tree_column);
/* interactive search */
static void gtk_tree_view_search_dialog_destroy (GtkWidget *search_dialog,
@@ -1102,16 +1100,16 @@ gtk_tree_view_destroy (GtkObject *object)
tree_view->priv->drag_dest_row = NULL;
}
if (tree_view->priv->last_single_clicked != NULL)
if (tree_view->priv->last_button_press != NULL)
{
gtk_tree_row_reference_free (tree_view->priv->last_single_clicked);
tree_view->priv->last_single_clicked = NULL;
gtk_tree_row_reference_free (tree_view->priv->last_button_press);
tree_view->priv->last_button_press = NULL;
}
if (tree_view->priv->last_single_clicked_2 != NULL)
if (tree_view->priv->last_button_press_2 != NULL)
{
gtk_tree_row_reference_free (tree_view->priv->last_single_clicked_2);
tree_view->priv->last_single_clicked_2 = NULL;
gtk_tree_row_reference_free (tree_view->priv->last_button_press_2);
tree_view->priv->last_button_press_2 = NULL;
}
if (tree_view->priv->top_row != NULL)
@@ -1650,7 +1648,7 @@ gtk_tree_view_size_allocate (GtkWidget *widget,
tree_view->priv->vadjustment->lower = 0;
tree_view->priv->vadjustment->upper = MAX (tree_view->priv->vadjustment->page_size, tree_view->priv->height);
if (tree_view->priv->vadjustment->value + allocation->height > tree_view->priv->height)
if (tree_view->priv->vadjustment->value + allocation->height - TREE_VIEW_HEADER_HEIGHT (tree_view) > tree_view->priv->height)
gtk_adjustment_set_value (tree_view->priv->vadjustment,
MAX (tree_view->priv->height - tree_view->priv->vadjustment->page_size, 0));
gtk_adjustment_changed (tree_view->priv->vadjustment);
@@ -1790,20 +1788,25 @@ gtk_tree_view_button_press (GtkWidget *widget,
/* decide if we edit */
if (event->type == GDK_BUTTON_PRESS &&
!(event->state & gtk_accelerator_get_default_mod_mask ()) &&
tree_view->priv->cursor)
!(event->state & gtk_accelerator_get_default_mod_mask ()))
{
GtkTreePath *cursor = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
GtkTreePath *anchor;
GtkTreeIter iter;
gtk_tree_model_get_iter (tree_view->priv->model, &iter, path);
gtk_tree_view_column_cell_set_cell_data (column,
tree_view->priv->model,
&iter,
GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT),
node->children?TRUE:FALSE);
if (tree_view->priv->anchor)
{
anchor = gtk_tree_row_reference_get_path (tree_view->priv->anchor);
gtk_tree_model_get_iter (tree_view->priv->model, &iter, path);
gtk_tree_view_column_cell_set_cell_data (column,
tree_view->priv->model,
&iter,
GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT),
node->children?TRUE:FALSE);
}
else
anchor = NULL;
if ((cursor && !gtk_tree_path_compare (cursor, path))
if ((anchor && !gtk_tree_path_compare (anchor, path))
|| !_gtk_tree_view_column_has_editable_cell (column))
{
GtkCellEditable *cell_editable = NULL;
@@ -1839,15 +1842,15 @@ gtk_tree_view_button_press (GtkWidget *widget,
(GdkEvent *)event,
flags);
gtk_tree_path_free (path);
gtk_tree_path_free (cursor);
gtk_tree_path_free (anchor);
return TRUE;
}
column_handled_click = TRUE;
}
g_free (path_string);
}
if (cursor)
gtk_tree_path_free (cursor);
if (anchor)
gtk_tree_path_free (anchor);
}
/* select */
@@ -1890,18 +1893,18 @@ gtk_tree_view_button_press (GtkWidget *widget,
}
if (event->button == 1 && event->type == GDK_2BUTTON_PRESS &&
tree_view->priv->last_single_clicked)
tree_view->priv->last_button_press)
{
GtkTreePath *lsc;
lsc = gtk_tree_row_reference_get_path (tree_view->priv->last_single_clicked);
lsc = gtk_tree_row_reference_get_path (tree_view->priv->last_button_press);
if (tree_view->priv->last_single_clicked)
gtk_tree_row_reference_free (tree_view->priv->last_single_clicked);
if (tree_view->priv->last_single_clicked_2)
gtk_tree_row_reference_free (tree_view->priv->last_single_clicked_2);
tree_view->priv->last_single_clicked = NULL;
tree_view->priv->last_single_clicked_2 = NULL;
if (tree_view->priv->last_button_press)
gtk_tree_row_reference_free (tree_view->priv->last_button_press);
if (tree_view->priv->last_button_press_2)
gtk_tree_row_reference_free (tree_view->priv->last_button_press_2);
tree_view->priv->last_button_press = NULL;
tree_view->priv->last_button_press_2 = NULL;
if (lsc)
{
@@ -1912,10 +1915,10 @@ gtk_tree_view_button_press (GtkWidget *widget,
}
else if (event->button == 1 && event->type == GDK_BUTTON_PRESS)
{
if (tree_view->priv->last_single_clicked)
gtk_tree_row_reference_free (tree_view->priv->last_single_clicked);
tree_view->priv->last_single_clicked = tree_view->priv->last_single_clicked_2;
tree_view->priv->last_single_clicked_2 = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view), tree_view->priv->model, path);
if (tree_view->priv->last_button_press)
gtk_tree_row_reference_free (tree_view->priv->last_button_press);
tree_view->priv->last_button_press = tree_view->priv->last_button_press_2;
tree_view->priv->last_button_press_2 = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view), tree_view->priv->model, path);
}
GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS);
@@ -1942,9 +1945,10 @@ gtk_tree_view_button_press (GtkWidget *widget,
{
gpointer drag_data;
if (event->type == GDK_2BUTTON_PRESS)
if (event->type == GDK_2BUTTON_PRESS &&
gtk_tree_view_column_get_sizing (column) != GTK_TREE_VIEW_COLUMN_AUTOSIZE)
{
gtk_tree_view_column_autosize (tree_view, column);
_gtk_tree_view_column_autosize (tree_view, column);
break;
}
@@ -2270,9 +2274,12 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
if (tree_view->priv->drag_column_window_state != DRAG_COLUMN_WINDOW_STATE_ORIGINAL)
{
if (tree_view->priv->drag_highlight_window)
gdk_window_destroy (tree_view->priv->drag_highlight_window);
{
gdk_window_set_user_data (tree_view->priv->drag_highlight_window,
NULL);
gdk_window_destroy (tree_view->priv->drag_highlight_window);
}
attributes.window_type = GDK_WINDOW_CHILD;
attributes.wclass = GDK_INPUT_OUTPUT;
@@ -2331,7 +2338,11 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
if (tree_view->priv->drag_column_window_state != DRAG_COLUMN_WINDOW_STATE_ARROW)
{
if (tree_view->priv->drag_highlight_window)
gdk_window_destroy (tree_view->priv->drag_highlight_window);
{
gdk_window_set_user_data (tree_view->priv->drag_highlight_window,
NULL);
gdk_window_destroy (tree_view->priv->drag_highlight_window);
}
attributes.window_type = GDK_WINDOW_TEMP;
attributes.wclass = GDK_INPUT_OUTPUT;
@@ -2400,7 +2411,11 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
tree_view->priv->drag_column_window_state != DRAG_COLUMN_WINDOW_STATE_ARROW_RIGHT)
{
if (tree_view->priv->drag_highlight_window)
gdk_window_destroy (tree_view->priv->drag_highlight_window);
{
gdk_window_set_user_data (tree_view->priv->drag_highlight_window,
NULL);
gdk_window_destroy (tree_view->priv->drag_highlight_window);
}
attributes.window_type = GDK_WINDOW_TEMP;
attributes.wclass = GDK_INPUT_OUTPUT;
@@ -4220,6 +4235,28 @@ _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view)
install_presize_handler (tree_view);
}
/**
* This function works synchronously (due to the while (do_validate_rows...)
* loop).
*
* There was a check for column_type != GTK_TREE_VIEW_COLUMN_AUTOSIZE
* here. You now need to check that yourself.
*/
void
_gtk_tree_view_column_autosize (GtkTreeView *tree_view,
GtkTreeViewColumn *column)
{
g_return_if_fail (GTK_IS_TREE_VIEW (tree_view));
g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (column));
_gtk_tree_view_column_cell_set_dirty (column, FALSE);
do_presize_handler (tree_view);
while (do_validate_rows (tree_view));
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}
/* Drag-and-drop */
static void
@@ -5650,6 +5687,9 @@ gtk_tree_view_row_changed (GtkTreeModel *model,
*/
return;
if (tree_view->priv->edited_column)
gtk_tree_view_stop_editing (tree_view, TRUE);
gtk_widget_style_get (GTK_WIDGET (data), "vertical_separator", &vertical_separator, NULL);
if (path == NULL)
@@ -7795,24 +7835,6 @@ gtk_tree_view_set_headers_visible (GtkTreeView *tree_view,
g_object_notify (G_OBJECT (tree_view), "headers_visible");
}
static void
gtk_tree_view_column_autosize (GtkTreeView *tree_view,
GtkTreeViewColumn *column)
{
g_return_if_fail (GTK_IS_TREE_VIEW (tree_view));
g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (column));
if (column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE)
return;
_gtk_tree_view_column_cell_set_dirty (column, FALSE);
do_presize_handler (tree_view);
while (do_validate_rows (tree_view));
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}
/**
* gtk_tree_view_columns_autosize:
* @tree_view: A #GtkTreeView.
@@ -8846,6 +8868,53 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
gtk_tree_path_free (child_path);
}
if (gtk_tree_row_reference_valid (tree_view->priv->cursor))
{
GtkTreePath *cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
if (gtk_tree_path_is_ancestor (path, cursor_path))
{
gtk_tree_row_reference_free (tree_view->priv->cursor);
tree_view->priv->cursor = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view),
tree_view->priv->model,
path);
}
gtk_tree_path_free (cursor_path);
}
if (gtk_tree_row_reference_valid (tree_view->priv->anchor))
{
GtkTreePath *anchor_path = gtk_tree_row_reference_get_path (tree_view->priv->anchor);
if (gtk_tree_path_is_ancestor (path, anchor_path))
{
gtk_tree_row_reference_free (tree_view->priv->anchor);
tree_view->priv->anchor = NULL;
}
gtk_tree_path_free (anchor_path);
}
if (gtk_tree_row_reference_valid (tree_view->priv->last_button_press))
{
GtkTreePath *lsc = gtk_tree_row_reference_get_path (tree_view->priv->last_button_press);
if (gtk_tree_path_is_ancestor (path, lsc))
{
gtk_tree_row_reference_free (tree_view->priv->last_button_press);
tree_view->priv->last_button_press = NULL;
}
gtk_tree_path_free (lsc);
}
if (gtk_tree_row_reference_valid (tree_view->priv->last_button_press_2))
{
GtkTreePath *lsc = gtk_tree_row_reference_get_path (tree_view->priv->last_button_press_2);
if (gtk_tree_path_is_ancestor (path, lsc))
{
gtk_tree_row_reference_free (tree_view->priv->last_button_press_2);
tree_view->priv->last_button_press_2 = NULL;
}
gtk_tree_path_free (lsc);
}
if (gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children))
{
_gtk_rbtree_remove (node->children);
@@ -8882,32 +8951,6 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}
if (gtk_tree_row_reference_valid (tree_view->priv->cursor))
{
GtkTreePath *cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor);
if (gtk_tree_path_is_ancestor (path, cursor_path))
{
gtk_tree_row_reference_free (tree_view->priv->cursor);
tree_view->priv->cursor = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view),
tree_view->priv->model,
path);
}
gtk_tree_path_free (cursor_path);
}
if (gtk_tree_row_reference_valid (tree_view->priv->anchor))
{
GtkTreePath *anchor_path = gtk_tree_row_reference_get_path (tree_view->priv->anchor);
if (gtk_tree_path_is_ancestor (path, anchor_path))
{
gtk_tree_row_reference_free (tree_view->priv->anchor);
tree_view->priv->anchor = NULL;
}
gtk_tree_path_free (anchor_path);
}
g_signal_emit (G_OBJECT (tree_view), tree_view_signals[ROW_COLLAPSED], 0, &iter, path);
/* now that we've collapsed all rows, we want to try to set the prelight
@@ -8981,10 +9024,10 @@ gtk_tree_view_map_expanded_rows_helper (GtkTreeView *tree_view,
{
if (node->children)
{
(* func) (tree_view, path, user_data);
gtk_tree_path_down (path);
gtk_tree_view_map_expanded_rows_helper (tree_view, node->children, path, func, user_data);
gtk_tree_path_up (path);
(* func) (tree_view, path, user_data);
}
gtk_tree_path_next (path);
node = _gtk_rbtree_next (tree, node);
@@ -9952,7 +9995,6 @@ gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view,
&cell_area,
&expose_area,
0);
cell_offset += column->width;
}
@@ -10395,8 +10437,8 @@ gtk_tree_view_search_iter (GtkTreeModel *model,
(*count)++;
if (*count == n)
{
gtk_tree_view_scroll_to_cell (tree_view, path, column,
TRUE, 0.5, 0.5);
gtk_tree_view_scroll_to_cell (tree_view, path, NULL,
TRUE, 0.5, 0.0);
gtk_tree_selection_select_iter (selection, iter);
gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE);
@@ -10598,11 +10640,22 @@ gtk_tree_view_start_editing (GtkTreeView *tree_view,
retval = TRUE;
if (editable_widget != NULL)
{
gint left, right;
GdkRectangle area;
GtkCellRenderer *cell;
area = cell_area;
cell = _gtk_tree_view_column_get_editable_cell (tree_view->priv->focus_column);
_gtk_tree_view_column_get_neighbor_sizes (tree_view->priv->focus_column, cell, &left, &right);
area.x += left;
area.width -= right + left;
gtk_tree_view_real_start_editing (tree_view,
tree_view->priv->focus_column,
cursor_path,
editable_widget,
&cell_area,
&area,
NULL,
flags);
}
@@ -10621,9 +10674,15 @@ gtk_tree_view_real_start_editing (GtkTreeView *tree_view,
GdkEvent *event,
guint flags)
{
gint pre_val = tree_view->priv->vadjustment->value;
tree_view->priv->edited_column = column;
_gtk_tree_view_column_start_editing (column, GTK_CELL_EDITABLE (cell_editable));
gtk_tree_view_real_set_cursor (tree_view, path, FALSE, TRUE);
cell_area->y += pre_val - tree_view->priv->vadjustment->value;
GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_DRAW_KEYFOCUS);
gtk_tree_view_put (tree_view,
GTK_WIDGET (cell_editable),
@@ -10638,11 +10697,28 @@ static void
gtk_tree_view_stop_editing (GtkTreeView *tree_view,
gboolean cancel_editing)
{
GtkTreeViewColumn *column;
if (tree_view->priv->edited_column == NULL)
return;
if (! cancel_editing)
gtk_cell_editable_editing_done (tree_view->priv->edited_column->editable_widget);
/*
* This is very evil. We need to do this, because
* gtk_cell_editable_editing_done may trigger gtk_tree_view_row_changed
* later on. If gtk_tree_view_row_changed notices
* tree_view->priv->edited_column != NULL, it'll call
* gtk_tree_view_stop_editing again. Bad things will happen then.
*
* Please read that again if you intend to modify anything here.
*/
gtk_cell_editable_remove_widget (tree_view->priv->edited_column->editable_widget);
column = tree_view->priv->edited_column;
tree_view->priv->edited_column = NULL;
if (! cancel_editing)
gtk_cell_editable_editing_done (column->editable_widget);
tree_view->priv->edited_column = column;
gtk_cell_editable_remove_widget (column->editable_widget);
}
+107 -5
View File
@@ -1046,7 +1046,7 @@ _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column)
{
GList *list;
for (list = column->cell_list; list; list = list ->next)
for (list = column->cell_list; list; list = list->next)
if (((GtkTreeViewColumnCellInfo *)list->data)->cell->mode ==
GTK_CELL_RENDERER_MODE_EDITABLE)
return TRUE;
@@ -1059,7 +1059,7 @@ _gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column)
{
GList *list;
for (list = column->cell_list; list; list = list ->next)
for (list = column->cell_list; list; list = list->next)
if (((GtkTreeViewColumnCellInfo *)list->data)->cell->mode ==
GTK_CELL_RENDERER_MODE_EDITABLE)
return ((GtkTreeViewColumnCellInfo *)list->data)->cell;
@@ -1067,6 +1067,24 @@ _gtk_tree_view_column_get_editable_cell (GtkTreeViewColumn *column)
return NULL;
}
gint
_gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column)
{
gint i = 0;
GList *list;
for (list = column->cell_list; list; list = list->next)
{
GtkTreeViewColumnCellInfo *cellinfo = list->data;
if (cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_EDITABLE ||
cellinfo->cell->mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE)
i++;
}
return i;
}
/* Public Functions */
@@ -1204,7 +1222,7 @@ gtk_tree_view_column_pack_end (GtkTreeViewColumn *tree_column,
g_object_ref (G_OBJECT (cell));
gtk_object_sink (GTK_OBJECT (cell));
cell_info = g_new (GtkTreeViewColumnCellInfo, 1);
cell_info = g_new0 (GtkTreeViewColumnCellInfo, 1);
cell_info->cell = cell;
cell_info->expand = expand ? TRUE : FALSE;
cell_info->pack = GTK_PACK_END;
@@ -1711,6 +1729,10 @@ gtk_tree_view_column_set_min_width (GtkTreeViewColumn *tree_column,
}
g_object_notify (G_OBJECT (tree_column), "min_width");
g_object_thaw_notify (G_OBJECT (tree_column));
if (tree_column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE)
_gtk_tree_view_column_autosize (GTK_TREE_VIEW (tree_column->tree_view),
tree_column);
}
/**
@@ -1767,6 +1789,10 @@ gtk_tree_view_column_set_max_width (GtkTreeViewColumn *tree_column,
}
g_object_notify (G_OBJECT (tree_column), "max_width");
g_object_thaw_notify (G_OBJECT (tree_column));
if (tree_column->column_type == GTK_TREE_VIEW_COLUMN_AUTOSIZE)
_gtk_tree_view_column_autosize (GTK_TREE_VIEW (tree_column->tree_view),
tree_column);
}
/**
@@ -2400,12 +2426,22 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
if (event)
{
if (real_cell_area.x <= ((GdkEventButton *)event)->x &&
if (_gtk_tree_view_column_count_special_cells (tree_column) == 1)
{
/* only 1 activatable cell -> whole column can activate */
if (cell_area->x <= ((GdkEventButton *)event)->x &&
cell_area->x + cell_area->width > ((GdkEventButton *)event)->x)
try_event = TRUE;
}
else if (real_cell_area.x <= ((GdkEventButton *)event)->x &&
real_cell_area.x + real_cell_area.width > ((GdkEventButton *)event)->x)
/* only activate cell if the user clicked on an individual
* cell
*/
try_event = TRUE;
}
else /* if (info->has_focus)*/
/* FIXME 73676: allow focusing individual cells */
/* FIXME 73676: allow focusing individual cells (fixed on HEAD) */
{
try_event = TRUE;
}
@@ -2492,6 +2528,70 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column,
if (max_y < real_cell_area.y + y_offset + height)
max_y = real_cell_area.y + y_offset + height;
}
else if (action == CELL_ACTION_EVENT)
{
gboolean try_event = FALSE;
if (event)
{
if (_gtk_tree_view_column_count_special_cells (tree_column) == 1)
{
/* only 1 activatable cell -> whole column can activate */
if (cell_area->x <= ((GdkEventButton *)event)->x &&
cell_area->x + cell_area->width > ((GdkEventButton *)event)->x)
try_event = TRUE;
}
else if (real_cell_area.x <= ((GdkEventButton *)event)->x &&
real_cell_area.x + real_cell_area.width > ((GdkEventButton *)event)->x)
/* only activate cell if the user clicked on an individual
* cell
*/
try_event = TRUE;
}
else /* if (info->has_focus) */
/* FIXME 73676: allow focusing individual cells (fixed on HEAD) */
{
try_event = TRUE;
}
if (try_event)
{
gboolean visible, mode;
g_object_get (G_OBJECT (info->cell),
"visible", &visible,
"mode", &mode,
NULL);
if (visible && mode == GTK_CELL_RENDERER_MODE_ACTIVATABLE)
{
if (gtk_cell_renderer_activate (info->cell,
event,
tree_column->tree_view,
path_string,
background_area,
cell_area,
flags))
return TRUE;
}
else if (visible && mode == GTK_CELL_RENDERER_MODE_EDITABLE)
{
*editable_widget =
gtk_cell_renderer_start_editing (info->cell,
event,
tree_column->tree_view,
path_string,
background_area,
cell_area,
flags);
if (*editable_widget != NULL)
{
g_return_val_if_fail (GTK_IS_CELL_EDITABLE (*editable_widget), FALSE);
return TRUE;
}
}
}
}
real_cell_area.x += (info->requested_width + tree_column->spacing);
}
@@ -2659,6 +2759,8 @@ gtk_tree_view_column_cell_is_visible (GtkTreeViewColumn *tree_column)
{
GList *list;
g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column), FALSE);
for (list = tree_column->cell_list; list; list = list->next)
{
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *) list->data;
+1 -1
View File
@@ -477,7 +477,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
PROP_COMPOSITE_CHILD,
g_param_spec_boolean ("composite_child",
_("Composite child"),
_("Whether the widget is composed of other widgets"),
_("Whether the widget is part of a composite widget"),
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (gobject_class,
+69 -34
View File
@@ -40,6 +40,7 @@
#include "gtkiconfactory.h"
#include "gtkintl.h"
#include "gtkmarshalers.h"
#include "gtkplug.h"
enum {
SET_FOCUS,
@@ -68,6 +69,10 @@ enum {
PROP_DEFAULT_HEIGHT,
PROP_DESTROY_WITH_PARENT,
PROP_ICON,
/* Readonly properties */
PROP_ACTIVE,
PROP_FOCUS_IN_TOPLEVEL,
LAST_ARG
};
@@ -3087,7 +3092,11 @@ gtk_window_show (GtkWidget *widget)
/* Try to make sure that we have some focused widget
*/
#ifdef GDK_WINDOWING_X11
if (!window->focus_widget && !GTK_IS_PLUG (window))
#else
if (!window->focus_widget)
#endif
gtk_window_move_focus (window, GTK_DIR_TAB_FORWARD);
if (window->modal)
@@ -3255,7 +3264,7 @@ gtk_window_realize (GtkWidget *widget)
attributes.window_type = GDK_WINDOW_CHILD;
attributes.x = window->frame_left;
attributes.y = window->frame_right;
attributes.y = window->frame_top;
attributes_mask = GDK_WA_X | GDK_WA_Y;
@@ -3474,6 +3483,7 @@ gtk_window_configure_event (GtkWidget *widget,
GdkEventConfigure *event)
{
GtkWindow *window = GTK_WINDOW (widget);
gboolean expected_reply = window->configure_request_count > 0;
/* window->configure_request_count incremented for each
* configure request, and decremented to a min of 0 for
@@ -3498,7 +3508,7 @@ gtk_window_configure_event (GtkWidget *widget,
* notifies and can wait to resize when we get them
*/
if (window->configure_request_count > 0 ||
if (!expected_reply &&
(widget->allocation.width == event->width &&
widget->allocation.height == event->height))
return TRUE;
@@ -3842,8 +3852,20 @@ static void
gtk_window_real_set_focus (GtkWindow *window,
GtkWidget *focus)
{
GtkWidget *old_focus = window->focus_widget;
gboolean def_flags = 0;
if (old_focus)
{
g_object_ref (old_focus);
g_object_freeze_notify (G_OBJECT (old_focus));
}
if (focus)
{
g_object_ref (focus);
g_object_freeze_notify (G_OBJECT (focus));
}
if (window->default_widget)
def_flags = GTK_WIDGET_HAS_DEFAULT (window->default_widget);
@@ -3883,6 +3905,17 @@ gtk_window_real_set_focus (GtkWindow *window,
if (window->default_widget &&
(def_flags != GTK_WIDGET_FLAGS (window->default_widget)))
gtk_widget_queue_draw (window->default_widget);
if (old_focus)
{
g_object_thaw_notify (G_OBJECT (old_focus));
g_object_unref (old_focus);
}
if (focus)
{
g_object_thaw_notify (G_OBJECT (focus));
g_object_unref (focus);
}
}
/*********************************
@@ -4273,38 +4306,38 @@ gtk_window_move_resize (GtkWindow *window)
/* this is the position from the last configure notify */
gdk_window_get_position (widget->window, &notify_x, &notify_y);
g_print ("--- %s ---\n"
"last : %d,%d\t%d x %d\n"
"this : %d,%d\t%d x %d\n"
"alloc : %d,%d\t%d x %d\n"
"req : \t%d x %d\n"
"resize: \t%d x %d\n"
"size_changed: %d pos_changed: %d hints_changed: %d\n"
"configure_notify_received: %d\n"
"configure_request_count: %d\n"
"position_constraints_changed: %d\n",
window->title ? window->title : "(no title)",
info->last.configure_request.x,
info->last.configure_request.y,
info->last.configure_request.width,
info->last.configure_request.height,
new_request.x,
new_request.y,
new_request.width,
new_request.height,
notify_x, notify_y,
widget->allocation.width,
widget->allocation.height,
widget->requisition.width,
widget->requisition.height,
info->resize_width,
info->resize_height,
configure_request_pos_changed,
configure_request_size_changed,
hints_changed,
window->configure_notify_received,
window->configure_request_count,
info->position_constraints_changed);
g_message ("--- %s ---\n"
"last : %d,%d\t%d x %d\n"
"this : %d,%d\t%d x %d\n"
"alloc : %d,%d\t%d x %d\n"
"req : \t%d x %d\n"
"resize: \t%d x %d\n"
"size_changed: %d pos_changed: %d hints_changed: %d\n"
"configure_notify_received: %d\n"
"configure_request_count: %d\n"
"position_constraints_changed: %d\n",
window->title ? window->title : "(no title)",
info->last.configure_request.x,
info->last.configure_request.y,
info->last.configure_request.width,
info->last.configure_request.height,
new_request.x,
new_request.y,
new_request.width,
new_request.height,
notify_x, notify_y,
widget->allocation.width,
widget->allocation.height,
widget->requisition.width,
widget->requisition.height,
info->resize_width,
info->resize_height,
configure_request_pos_changed,
configure_request_size_changed,
hints_changed,
window->configure_notify_received,
window->configure_request_count,
info->position_constraints_changed);
}
#endif
@@ -4504,6 +4537,8 @@ gtk_window_move_resize (GtkWindow *window)
else
gdk_window_move (widget->window,
new_request.x, new_request.y);
info->initial_pos_set = FALSE;
}
/* And run the resize queue.
+24 -14
View File
@@ -257,20 +257,30 @@ VARIABLES6 = @STRIP_BEGIN@ \
noinst_DATA = gtkstockpixbufs.h
CLEANFILES = $(noinst_DATA)
pixbuf_dir = $(top_builddir)/gdk-pixbuf
if CROSS_COMPILING
pixbuf_csource=$(GDK_PIXBUF_CSOURCE)
else
pixbuf_csource=GDK_PIXBUF_MODULEDIR=$(top_builddir)/gdk-pixbuf $(top_builddir)/gdk-pixbuf/gdk-pixbuf-csource
endif
gtkstockpixbufs.h: $(pixbuf_dir)/gdk-pixbuf-csource $(IMAGES)
GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
$(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES1) >$(srcdir)/gtkstockpixbufs.h
GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
$(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES2) >>$(srcdir)/gtkstockpixbufs.h
GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
$(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES3) >>$(srcdir)/gtkstockpixbufs.h
GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
$(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES4) >>$(srcdir)/gtkstockpixbufs.h
GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
$(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES5) >>$(srcdir)/gtkstockpixbufs.h
GDK_PIXBUF_MODULEDIR=$(pixbuf_dir) \
$(pixbuf_dir)/gdk-pixbuf-csource --raw --build-list $(VARIABLES6) >>$(srcdir)/gtkstockpixbufs.h
gtkstockpixbufs.h: @REBUILD_PNGS@ $(top_builddir)/gdk-pixbuf/gdk-pixbuf-csource $(IMAGES)
$(pixbuf_csource) \
--raw --build-list $(VARIABLES1) > $(srcdir)/gtkstockpixbufs.h || \
( rm -f $(srcdir)/gtkstockpixbufs.h && false )
$(pixbuf_csource) \
--raw --build-list $(VARIABLES2) >>$(srcdir)/gtkstockpixbufs.h || \
( rm -f $(srcdir)/gtkstockpixbufs.h && false )
$(pixbuf_csource) \
--raw --build-list $(VARIABLES3) >>$(srcdir)/gtkstockpixbufs.h || \
( rm -f $(srcdir)/gtkstockpixbufs.h && false )
$(pixbuf_csource) \
--raw --build-list $(VARIABLES4) >>$(srcdir)/gtkstockpixbufs.h || \
( rm -f $(srcdir)/gtkstockpixbufs.h && false )
$(pixbuf_csource) \
--raw --build-list $(VARIABLES5) >>$(srcdir)/gtkstockpixbufs.h || \
( rm -f $(srcdir)/gtkstockpixbufs.h && false )
$(pixbuf_csource) \
--raw --build-list $(VARIABLES6) >>$(srcdir)/gtkstockpixbufs.h || \
( rm -f $(srcdir)/gtkstockpixbufs.h && false )
EXTRA_DIST = $(IMAGES) gtkstockpixbufs.h
Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 237 B

Some files were not shown because too many files have changed in this diff Show More