Compare commits

...

146 Commits

Author SHA1 Message Date
Matthias Clasen
346907d9c0 2.12.8
svn path=/tags/GTK_2_12_8/; revision=19551
2008-02-12 23:29:19 +00:00
Matthias Clasen
32f58034a8 2.12.8
svn path=/branches/gtk-2-12/; revision=19549
2008-02-12 23:24:09 +00:00
Matthias Clasen
fac16294ac Updates
svn path=/branches/gtk-2-12/; revision=19548
2008-02-12 22:47:46 +00:00
Matthias Clasen
aa84805eb3 Fix some i18n errors. Pointed out by Behdad Esfahbod.
2008-02-12  Matthias Clasen  <mclasne@redhat.com>

        * gtk/gtkpapersize.c:
        * gtk/gtkprintoperation.c:
        * gtk/gtkvolumebutton.c:
        * gtk/gtkbulderparser.c: Fix some i18n errors. Pointed
        out by Behdad Esfahbod.


svn path=/branches/gtk-2-12/; revision=19546
2008-02-12 21:57:41 +00:00
Cody Russell
ef31de52c6 Merged from trunk:
2008-02-12  Cody Russell  <bratsche@gnome.org>

        Merged from trunk:

        * gdk/win32/gdkprivate-win32.h
        * gdk/win32/gdkevents-win32.c
        * gdk/win32/gdkwindow-win32.c
        * gdk/win32/gdkwindow-win32.h
        * gdk/win32/gdkwin32.h:
        Modal window rework.  (#455627, #511111, #514643, #514789)


svn path=/branches/gtk-2-12/; revision=19545
2008-02-12 21:29:57 +00:00
Cody Russell
fbb07bf75a Merged from trunk:
2008-02-10  Cody Russell  <bratsche@gnome.org>

	Merged from trunk:

        * gtk/gtkfilechooser.c (gtk_file_chooser_get_current_folder_uri):
        Check the return value of _gtk_file_chooser_get_file_system () for
        NULL before passing it to gtk_file_system_path_to_uri ().
        (#515667, Francesco Montorsi)


svn path=/branches/gtk-2-12/; revision=19544
2008-02-12 21:05:32 +00:00
Federico Mena Quintero
0ae179e974 Don't focus the file list even when activating a bookmark with a shortcut key
2008-02-12  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserdefault.c (switch_to_shortcut): Don't focus
	the file list (this was the last place where we would focus the
	file list explicitly).  If you are in the location entry, for
	example, you don't want Alt-Home to take you to the file list; you
	just want the current folder to change.  Thanks to Olle Bergkvist
	<olle.bergkvist@yahoo.se> for pointing this out in
	http://bugzilla.gnome.org/show_bug.cgi?id=419737#c51.
	(focus_browse_tree_view_if_possible): Removed.

svn path=/branches/gtk-2-12/; revision=19542
2008-02-12 19:25:51 +00:00
Matthias Clasen
4cc03789a6 Skip exensions when selecting filenames in the save-as dialog. (#362516,
2008-02-12  Matthias Clasen  <mclasen@redhat.com>

        Skip exensions when selecting filenames in the save-as dialog.
        (#362516, Carlos Garnacho)

        * gtk/gtkfilechooserentry.h:
        * gtk/gtkfilechooserentry.c (_gtk_file_chooser_entry_select_filename):
        New function to skip the extension part when selecting a filename.
        (_gtk_file_chooser_entry_set_base_folder): Use it here.

        * gtk/gtkfilechooserdefault.c (gtk_file_chooser_entry_grab_focus):
        ...and here.


svn path=/branches/gtk-2-12/; revision=19541
2008-02-12 17:38:54 +00:00
Matthias Clasen
28f05f2aaa Fix state change reporting for accessibility. (#499835, Rich Burridge,
2008-02-12  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkiconview.c: Fix state change reporting for
        accessibility.  (#499835, Rich Burridge, patch by LiYan Zhang)



svn path=/branches/gtk-2-12/; revision=19539
2008-02-12 16:53:17 +00:00
Emmanuele Bassi
2f3adcac97 Merged from trunk:
2008-02-12  Emmanuele Bassi  <ebassi@gnome.org>

	Merged from trunk:

	* gtk/gtkrecentchooser.c:
	(gtk_recent_chooser_class_init): Set the default value of the
	show-not-found property to TRUE, as every implementation sets
	it to TRUE already.

	* gtk/gtkrecentchooserdefault.c:
	(_gtk_recent_chooser_default_init): Sync show_tips to the
	default value of the :show-tips property.

svn path=/branches/gtk-2-12/; revision=19537
2008-02-12 16:42:53 +00:00
Matthias Clasen
a21cbfc272 Don't let the width or height go below 1. (#516024, Christian Persch)
2008-02-12  Matthias Clasen  <mclasne@redhat.com>

        * gdk-pixbuf-io.c (at_scale_size_prepared_cb): Don't let
        the width or height go below 1.  (#516024, Christian Persch)



svn path=/branches/gtk-2-12/; revision=19536
2008-02-12 16:38:15 +00:00
Matthias Clasen
2caa0a86ef Unify the handling of various "Enter" keysyms all over the place.
2008-02-12  Matthias Clasen  <mclasen@redhat.com>

        * gtk/*.c: Unify the handling of various "Enter" keysyms
        all over the place.  (#515047, Christian Persch)


svn path=/branches/gtk-2-12/; revision=19532
2008-02-12 16:04:54 +00:00
Kristian Rietveld
8bb6729e21 Merge from trunk:
2008-02-12  Kristian Rietveld  <kris@imendio.com>

	Merge from trunk:

	* gtk/gtktreeview.c (gtk_tree_view_real_select_cursor_row),
	(gtk_tree_view_real_toggle_cursor_row): guard against people
	deleting the row in question in the selection-changed callback.
	(#514621, Andreas Koehler).


svn path=/branches/gtk-2-12/; revision=19531
2008-02-12 16:00:02 +00:00
Matthias Clasen
011a75e87a Forgotten commit
svn path=/branches/gtk-2-12/; revision=19529
2008-02-12 15:57:09 +00:00
Jorge Gonzalez Gonzalez
6a43975787 Updated Spanish translation
svn path=/branches/gtk-2-12/; revision=19523
2008-02-12 11:03:29 +00:00
Matthias Clasen
71586016d5 Support keynav in status icons. (#473786, Li Yuan)
2008-02-11  Matthias Clasen  <mclasen@redhat.com>

        Support keynav in status icons.  (#473786, Li Yuan)

        * gtk/gtkstatusicon.c: Handle keynav, make the tray icon focusable.

        * gtk/gtktrayicon-x11.c: Draw a focus rectangle when focused.



svn path=/branches/gtk-2-12/; revision=19516
2008-02-12 03:26:11 +00:00
Kristian Rietveld
ffdd1deed6 Merge from trunk:
2008-02-11  Kristian Rietveld  <kris@imendio.com>

	Merge from trunk:

	* gtk/gtkcellview.c (gtk_cell_view_cell_layout_reorder)
	* gtk/gtkiconview.c (gtk_icon_view_cell_layout_reorder): plug leak
	wrt. link deletion from list; contination of fix for #503569.


svn path=/branches/gtk-2-12/; revision=19514
2008-02-11 15:09:04 +00:00
Emmanuele Bassi
43f4ac3029 Merge from trunk:
2008-02-11  Emmanuele Bassi  <ebassi@gnome.org>

	Merge from trunk:

	* gtk/gtkrecentchoosermenu.c:
	(gtk_recent_chooser_menu_constructor): Set no-show-all flag
	on the placeholder menu item.

	* tests/testrecentchoosermenu.c: 
	(create_recent_chooser_menu): Use gtk_widget_show_all() to test
	whether the placeholder menu item gets shown.

svn path=/branches/gtk-2-12/; revision=19511
2008-02-11 09:58:29 +00:00
Matthias Clasen
17af886caa Propagate local-only. (#511987, Jonh Wendell)
2008-02-10  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkrecentaction.c: Propagate local-only.  (#511987,
        Jonh Wendell)



svn path=/branches/gtk-2-12/; revision=19506
2008-02-10 06:36:55 +00:00
Matthias Clasen
de2bebed70 Try harder to return pixbufs of the requested size. (#494515, Mike
2008-02-10  Matthias Clasen  <mclasne@redhat.com>

        * gdk-pixbuf-scaled-anim.c: Try harder to return pixbufs
        of the requested size.  (#494515, Mike Morrison)


svn path=/branches/gtk-2-12/; revision=19505
2008-02-10 06:30:12 +00:00
Richard Hult
aedbca9c4f Merge from trunk:
2008-02-08  Richard Hult  <richard@imendio.com>

	Merge from trunk:

	* gdk/quartz/gdkevents-quartz.c (gdk_event_translate): Ignore the
	delta from the NSEvent for now, generating multiple scroll events
	results in a lot of events getting queued up and things get really
	slow.

svn path=/branches/gtk-2-12/; revision=19500
2008-02-08 19:14:07 +00:00
Sven Herzberg
f009c071be Adjust the code to match the documentation, examples, "common sense" and
2008-02-08  Sven Herzberg  <sven@imendio.com>

	Adjust the code to match the documentation, examples, "common sense"
	and existing applications.

	* gtk/gtkaction.c: (_gtk_action_sync_menu_visible): take into account
	that a GtkMenu for a <popup> element doesn't have to have a GtkAction
	assigned


svn path=/branches/gtk-2-12/; revision=19498
2008-02-08 00:29:20 +00:00
Yair Hershkovitz
9bd1afdbf5 updated hebrew translation
svn path=/branches/gtk-2-12/; revision=19495
2008-02-07 23:22:26 +00:00
Ignacio Casal Quinteiro
28a934ec50 Updated Galician Translation.
svn path=/branches/gtk-2-12/; revision=19490
2008-02-07 11:02:11 +00:00
Cody Russell
3b72b601e9 Also check that the window is not mapped.
svn path=/branches/gtk-2-12/; revision=19486
2008-02-06 17:03:06 +00:00
Cody Russell
2cc7978998 Merge from trunk:
2008-02-06  Cody Russell  <bratsche@gnome.org>

	Merge from trunk:

        * gdk/win32/gdkevents-win32.c: Check if the window is a temp window,
        otherwise things get wonky when you click on a menu.  This fixes
        a regression caused in #505928.  Thanks to Tor for spotting this
        one!  (#514789)


svn path=/branches/gtk-2-12/; revision=19483
2008-02-06 16:35:40 +00:00
Matthias Clasen
e19fe1750f Allow to store half-open ranges.
2008-02-05  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkprintsettings.c (gtk_print_settings_get_page_ranges):
        Allow to store half-open ranges.



svn path=/branches/gtk-2-12/; revision=19480
2008-02-06 04:06:47 +00:00
Federico Mena Quintero
1b4619a1ab Fix 419737 and 499940 - Don't focus the file list when activating a shortcut
2008-02-05  Federico Mena Quintero  <federico@novell.com>

	Don't focus the file list when shortcuts get activated.  This
	removes a lot of ambiguity in when the file selection should
	change, and makes the overall code flow simpler.

	This fixes http://bugzilla.gnome.org/show_bug.cgi?id=419737 -
	file/save dialog clears the filename entry when changing
	directories.

	Also fixes http://bugzilla.gnome.org/show_bug.cgi?id=499940 -
	focus should not go to the file list when a shortcut is activated.

	* gtk/gtkfilechooserdefault.c
	(shortcuts_activate_volume_mount_cb): Don't focus the file list
	(shortcuts_activate_get_info_cb): Likewise.

Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/branches/gtk-2-12/; revision=19476
2008-02-05 23:11:46 +00:00
Federico Mena Quintero
04de2d6d9e Merge Josselin's patch for single-click shortcuts from trunk
2008-02-05  Federico Mena Quintero  <federico@novell.com>

	Merged from trunk (patch by Josselin Mouette <joss@malsain.org>):

	reviewed by: Federico Mena Quintero

	* gtk/gtkfilechooserdefault.c: (shortcuts_append_paths),
	(shortcuts_add_bookmarks), (shortcuts_selection_changed_cb),
	(shortcuts_list_create), (gtk_file_chooser_default_should_respond):
	Make the shortcuts activate with a single click. (#148828)
        Fix a few things affected by the change:
	  - Set selection mode to GTK_SELECTION_SINGLE to allow a case
	    where no shortcut is selected.
	  - Don't activate a shortcut in the response callback.
	  - Filter out duplicate entries in volumes and bookmarks to
	    avoid the selection to change when reordering them with DnD.

Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/branches/gtk-2-12/; revision=19475
2008-02-05 23:11:32 +00:00
Matthias Clasen
88f4a4fb15 Merge from trunk:
2008-02-05  Matthias Clasen  <mclasen@redhat.com>

        Merge from trunk:

        * gtk/updateiconcache.c: Ignore images in the toplevel theme
        directory, avoiding one source of invalid caches that
        has been spotted in the wild.

        * gtk/updateiconcache.c: Install a printerr handler that
        prepends the program name, since gtk-update-icon-cache output
        often appears in the middle of other output, e.g. rpm
        update logs.



svn path=/branches/gtk-2-12/; revision=19468
2008-02-05 22:24:07 +00:00
Cody Russell
26cafb1ecc More style improvements
svn path=/branches/gtk-2-12/; revision=19460
2008-02-03 05:12:23 +00:00
Leonardo Ferreira Fontenelle
3353b00d41 Brazilian Portuguese translation updated by Luiz Armesto.
2008-02-02  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>

	* pt_BR.po: Brazilian Portuguese translation updated by Luiz Armesto.

svn path=/branches/gtk-2-12/; revision=19459
2008-02-02 17:42:56 +00:00
Ignacio Casal Quinteiro
18a60d65f0 Updated Galician Translation.
svn path=/branches/gtk-2-12/; revision=19458
2008-02-02 14:31:32 +00:00
Ignacio Casal Quinteiro
ad218f70c3 Updated Galician Translation.
svn path=/branches/gtk-2-12/; revision=19457
2008-02-02 14:09:02 +00:00
Cody Russell
ad09810cda Merge from trunk:
2008-02-01  Cody Russell  <cody@jhu.edu>

        Merge from trunk:

        * modules/engines/ms-windows/xp_theme.[ch]
        * modules/engines/ms-windows/xp_theme_defs.h
        * modules/engines/ms-windows/msw_rc_style.c
        * modules/engines/ms-windows/msw_theme_main.c
        * modules/engines/ms-windows/msw_style.c: Re-indented and generally
        attempted to stylize more like the rest of the gtk+ stack's code.


svn path=/branches/gtk-2-12/; revision=19456
2008-02-01 23:25:54 +00:00
Sven Neumann
09a6b649f8 gdk/directfb/gdkdrawable-directfb.c gdk/directfb/gdkimage-directfb.c
2008-02-01  Sven Neumann  <sven@gimp.org>

	* gdk/directfb/gdkdrawable-directfb.c
	* gdk/directfb/gdkimage-directfb.c
	* gdk/directfb/gdkinput-directfb.c
	* gdk/directfb/gdkpixmap-directfb.c
	* gdk/directfb/gdkwindow-directfb.c: applied
	directfb-deprecation-fixes.patch from Debian. Fixes build with
	GLib 2.15 deprecation of G_GNUC_FUNCTION in favor of G_STRLOC.

svn path=/branches/gtk-2-12/; revision=19453
2008-02-01 10:34:47 +00:00
Cody Russell
4152cd0cc9 Merge from trunk:
2008-01-31  Cody Russell  <bratsche@gnome.org>

        Merge from trunk:

        * gdk/win32/gdkevents-win32.c:
        Refactored some of the window hiding/showing code from
        WM_ACTIVATE to WM_SIZE and WM_SYSCOMMAND.  Having this
        under WM_ACTIVATE was causing the application to go into
        a weird state when the user right-clicked on the taskbar
        entry of a window that was minimized.  (#505928)


svn path=/branches/gtk-2-12/; revision=19452
2008-01-31 22:42:11 +00:00
Cody Russell
dd5f8231d7 Merge from trunk:
2008-01-31  Cody Russell  <bratsche@gnome.org>

        Merge from trunk:

        * gtk/gtkpaned.c (gtk_paned_set_position):
        Change queue_resize() to queue_draw(), and add a check for
        child2 != NULL in case someone calls this before there is
        a child packed in there.  (#144269 again)


svn path=/branches/gtk-2-12/; revision=19450
2008-01-31 17:56:34 +00:00
Richard Hult
26078768ee Merge from trunk, except for the reverting since that part wasn't applied
2008-01-31  Richard Hult  <richard@imendio.com>

	Merge from trunk, except for the reverting since that part wasn't
	applied here yet:

	* gdk/quartz/GdkQuartzView.c: Another attempt at fixing focus
	issues with undecorated windows. Revert the change done on
	2008-01-25 and fix it by using the view's bounds instead. The
	bounds will always be up to date when setting up the tracking
	rect, so this should be more robust.

svn path=/branches/gtk-2-12/; revision=19446
2008-01-31 15:20:53 +00:00
Marcel Telka
b352f2acf0 Updated Slovak translation by Pavol Šimo.
2008-01-31  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation by Pavol Šimo.

svn path=/branches/gtk-2-12/; revision=19442
2008-01-31 08:49:58 +00:00
Marcel Telka
156c9836ac Updated Slovak translation by Pavol Šimo.
2008-01-31  Marcel Telka  <marcel@telka.sk>

	* sk.po: Updated Slovak translation by Pavol Šimo.

svn path=/branches/gtk-2-12/; revision=19441
2008-01-31 08:47:18 +00:00
Nikos Charonitakis
4d31da4bcb Updated Greek translation
svn path=/branches/gtk-2-12/; revision=19437
2008-01-31 00:22:50 +00:00
Nikos Charonitakis
31fa0a3957 Updated Greek translation
svn path=/branches/gtk-2-12/; revision=19436
2008-01-31 00:22:10 +00:00
Daniel Nylander
d811b99ef0 sv.po: Updated Swedish translation
svn path=/branches/gtk-2-12/; revision=19435
2008-01-30 23:57:39 +00:00
Matthias Clasen
dd673b1f62 Bump version
svn path=/branches/gtk-2-12/; revision=19430
2008-01-30 04:38:23 +00:00
Matthias Clasen
12845f1238 2.12.7
svn path=/branches/gtk-2-12/; revision=19428
2008-01-30 04:14:39 +00:00
Matthias Clasen
0e2a177730 Bump version
svn path=/branches/gtk-2-12/; revision=19425
2008-01-29 04:40:22 +00:00
Matthias Clasen
f9d78657c9 2.12.6
svn path=/branches/gtk-2-12/; revision=19423
2008-01-29 04:38:48 +00:00
Matthias Clasen
dc4d1e7b32 Updates
svn path=/branches/gtk-2-12/; revision=19422
2008-01-29 02:31:08 +00:00
Matthias Clasen
6aad7e6ca2 Bump version
svn path=/branches/gtk-2-12/; revision=19421
2008-01-28 19:46:23 +00:00
Paolo Borelli
1d56123af5 do not leak the pango layout, fixes #512375.
2008-01-28  Paolo Borelli  <pborelli@katamail.com>

	* gtk/gtkprintunixdialog.c (draw_page_cb): do not leak the pango
	layout, fixes #512375.


svn path=/branches/gtk-2-12/; revision=19420
2008-01-28 16:06:47 +00:00
Ihar Hrachyshka
f68def9b26 Reverted previous changes for be.po.
svn path=/branches/gtk-2-12/; revision=19412
2008-01-27 15:15:14 +00:00
Petr Kovář
e55bb28ea3 cs.po: Updated Czech translation.
svn path=/branches/gtk-2-12/; revision=19409
2008-01-25 20:55:04 +00:00
Johan Dahlin
f46e13b2ca Merge from trunk:
2008-01-25  Johan Dahlin  <johan@gnome.org>

	Merge from trunk:

	* gtk/gtk-builder-convert
	(GtkBuilderConverter._convert_adjustment): Handle the case where
	there is no child text node.
	(GtkBuilderConverter): Allow xml comments in most places.

	* gtk/gtk-builder-convert
	(GtkBuilderConverter._convert_combobox_items): Remove the items
	even if there are no items set.
	(GtkBuilderConverter._add_action_from_menuitem): Convert toggled
	signals and tooltips for all menu items subclasses and 
	GtkImageMenuItem:label. 
	Makes it possible to fully convert and run Jokosher.glade.

	* gtk/gtkwidget.c: (gtk_widget_buildable_interface_init),
	(gtk_widget_buildable_get_internal_child), (free_action),
	(free_relation), (gtk_widget_buildable_parser_finished),
	(accessibility_start_element),
	(gtk_widget_buildable_custom_tag_start),
	(gtk_widget_buildable_custom_finished):
	Implement accessible support, fixes #454653.

	* gtk/gtk-builder-convert:
	Add support for migrating old glade files
	
	* tests/buildertest.c: (test_widget), (test_file):
	Add accessible tests and imprve the test_file function to display
	toplevels and run dialogs.


svn path=/branches/gtk-2-12/; revision=19407
2008-01-25 19:52:15 +00:00
Stéphane Raimbault
0345180108 Updated French translation.
svn path=/branches/gtk-2-12/; revision=19397
2008-01-25 08:11:15 +00:00
Sven Herzberg
cc7b318d33 Merge from trunk:
2008-01-25  Sven Herzberg  <sven@imendio.com>

	Merge from trunk:

	Reviewed by Johan Dahlin.

	* gtk/gtkuimanager.c (gtk_ui_manager_remove_ui): emit a warning if
	this is called with something that's not a GtkUIManager


svn path=/branches/gtk-2-12/; revision=19396
2008-01-25 01:08:40 +00:00
Ihar Hrachyshka
a53b4f690c Backported Belarusian translation from gtk-2.14
svn path=/branches/gtk-2-12/; revision=19390
2008-01-21 00:19:27 +00:00
Yang Zhang
ff1a375f1c Updated zh_CN translation from manphiz
svn path=/branches/gtk-2-12/; revision=19388
2008-01-19 14:41:30 +00:00
Yang Zhang
788911254d Updated zh_CN translation from manphiz, backport from trunk
svn path=/branches/gtk-2-12/; revision=19387
2008-01-19 14:10:14 +00:00
Johan Dahlin
2d3b39f09e Merge from trunk:
2008-01-18  Johan Dahlin  <johan@gnome.org>

	Merge from trunk:

	* gtk/gtk-builder-convert (get_property_node): New method
	(GtkBuilderConverter._create_object): Conditionally take a node as
	a property value, so don't lose translate/context attributes if they
	are set. 
	(GtkBuilderConverter._add_action_from_menuitem): Send in Node as
	property values instead of strings.
	(#509153, Erik van Pienbroek)


svn path=/branches/gtk-2-12/; revision=19384
2008-01-18 16:11:00 +00:00
Andre Klapper
91591f61d0 Unbreak the build caused by adding si.po to ALL_LINGUAS.
2008-01-13  Andre Klapper  <a9016009@gmx.de>

	* si.po: Unbreak the build caused by adding si.po 
	to ALL_LINGUAS.


svn path=/branches/gtk-2-12/; revision=19363
2008-01-14 06:59:47 +00:00
Andre Klapper
1d63787d59 add Kannada (kn) and Sinhala (si) to ALL_LINGUAS.
2008-01-12  Andre Klapper  <a9016009@gmx.de>

	* configure.in: add Kannada (kn) and Sinhala (si) to ALL_LINGUAS.


svn path=/branches/gtk-2-12/; revision=19355
2008-01-12 13:23:28 +00:00
Cody Russell
c1928d9215 Merge from trunk:
2008-01-10  Cody Russell  <bratsche@gnome.org>

	Merge from trunk:

	* gdk/win32/gdkwindow-win32.c: (gdk_window_set_transient_for),
	Properly ref/unref windows and parents.  (#506769)


svn path=/branches/gtk-2-12/; revision=19345
2008-01-10 21:03:02 +00:00
Richard Hult
5d99b24899 Merged from trunk:
2008-01-10  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
	(gdk_window_hide), (move_resize_window_internal): Move the
	tracking rect workaround from here...

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h: ...to here, and ignore window
	movements during showing/hiding operations. Fixes bug #508516.

svn path=/branches/gtk-2-12/; revision=19343
2008-01-10 19:50:56 +00:00
Priit Laes
44ba0ec85a Translation updated by Ivar Smolin
2008-01-10  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Ivar Smolin

svn path=/branches/gtk-2-12/; revision=19338
2008-01-10 13:16:31 +00:00
Kristian Rietveld
f8ce259ffd Merge from trunk:
2008-01-10  Kristian Rietveld  <kris@imendio.com>

	Merge from trunk:

	* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow),
	(_gtk_tree_view_column_start_drag): fully initialize GdkWindowAttr to
	avoid valgrind warnings.  (#507751, patch from Christian Persch).


svn path=/branches/gtk-2-12/; revision=19337
2008-01-10 10:40:57 +00:00
Kristian Rietveld
1817e87aaf Merge from trunk:
2008-01-10  Kristian Rietveld  <kris@imendio.com>

	Merge from trunk:

	* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_get_path): Fix
	a leak of the path (#504611, patch from Sadrul Habib Chowdhury).


svn path=/branches/gtk-2-12/; revision=19336
2008-01-10 10:39:47 +00:00
Kristian Rietveld
04c303be84 Merge from trunk (omitted unit test updates):
2008-01-10  Kristian Rietveld  <kris@imendio.com>

	Merge from trunk (omitted unit test updates):

	Fix #477175, reported by Juri Pakaste.

	* gtk/gtktreeprivate.h:
	* gtk/gtktreeview.c (gtk_tree_view_top_row_to_dy): do not set
	tree_view->priv->dy here directly, just calculate the new value
	and set it on the adjustment,
	(gtk_tree_view_adjustment_changed): add guards to not call
	gtk_tree_view_dy_to_top_row() if we are currently in
	gtk_tree_view_top_row_to_dy(),
	(gtk_tree_view_put): fix coordinate annotation: these are bin_window
	coordinates, not tree coordinates,
	(gtk_tree_view_real_start_editing): add cast.


svn path=/branches/gtk-2-12/; revision=19335
2008-01-10 10:38:40 +00:00
Johan Dahlin
3391a567ba Merged from trunk:
2007-01-06  Johan Dahlin  <johan@gnome.org>

	Merged from trunk:

	* gtkbuilder.c: remove concept of root objects and just refcount
	all objects in the builder.  Fixes #496651.

	* docs/reference/gtk/tmpl/gtkbuildable.sgml: add clarification stating
	that the construct_child function is responsible for returning a
	reference.
	* gtkbuilder.c (_gtk_builder_construct): remove g_object_ref() for
	objects from constructors
	* gtkuimanager.c (gtk_ui_manager_buildable_construct_child): add
	g_object_ref() to this construction function (it's the only
	implementer in GTK)

	Fixes #496645.


svn path=/branches/gtk-2-12/; revision=19334
2008-01-10 10:20:49 +00:00
Matthias Clasen
32937cbc50 2.12.5
svn path=/branches/gtk-2-12/; revision=19328
2008-01-09 05:23:35 +00:00
Kjartan Maraas
73dd6eced9 Small additions
svn path=/branches/gtk-2-12/; revision=19327
2008-01-08 15:57:58 +00:00
Matthias Clasen
930f8598b3 Bump version
svn path=/branches/gtk-2-12/; revision=19326
2008-01-08 14:51:38 +00:00
Matthias Clasen
147542f4c9 2.12.4
svn path=/branches/gtk-2-12/; revision=19324
2008-01-08 14:41:07 +00:00
Matthias Clasen
ef090e9bd1 Updates
svn path=/branches/gtk-2-12/; revision=19323
2008-01-08 04:15:34 +00:00
Matthias Clasen
fe41c67383 Be more robust when removing the current page. (#499951, Andreas Sandberg)
2008-01-07  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkassistant.c (remove_page): Be more robust when removing
        the current page.  (#499951, Andreas Sandberg)

2

svn path=/branches/gtk-2-12/; revision=19322
2008-01-08 03:52:22 +00:00
Johan Dahlin
d2f20c569b Merged from trunk:
2007-01-06  Johan Dahlin  <johan@gnome.org>

	Merged from trunk:

	* gtk/gtk-builder-convert (GtkBuilderConverter._strip_root): 
	Make sure that --root works for toplevel widgets.
	(#491847, Phil Lello)


svn path=/branches/gtk-2-12/; revision=19310
2008-01-06 02:22:30 +00:00
Michael Natterer
681d09c445 Merged from trunk:
2008-01-04  Michael Natterer  <mitch@imendio.com>

	Merged from trunk:

	* gdk/x11/gdkinput-x11.c (_gdk_device_get_history): don't forget
	to set the time in the returned GdkTimeCoords.


svn path=/branches/gtk-2-12/; revision=19305
2008-01-04 16:22:30 +00:00
Emmanuele Bassi
90df66719e Backport from trunk
2008-01-03  Emmanuele Bassi  <ebassi@gnome.org>

	Backport from trunk

	* gtk/gtkfilechooserdefault.c (recent_sort_mru): Use the
	correct comparison function (kudos to Christian Persch and
	Claudio Saavedra for spotting this).

	* gtk/gtkrecentchooserutils.c:
	(sort_recent_items_mru),
	(sort_recent_items_lru): Ditto as above.

svn path=/branches/gtk-2-12/; revision=19303
2008-01-03 12:43:00 +00:00
Tor Lillqvist
688bcfb9af Remove fuzzy marker for the metadata entry (the first one, for the string
2008-01-03  Tor Lillqvist  <tml@novell.com>

	* io.po: Remove fuzzy marker for the metadata entry (the first
	one, for the string ""), as having that fuzzy crashes msgfmt from
	gettext 0.17, at least for me.


svn path=/branches/gtk-2-12/; revision=19301
2008-01-03 12:15:48 +00:00
Priit Laes
caf185f203 Translation updated by Ivar Smolin
2008-01-02  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Ivar Smolin

svn path=/branches/gtk-2-12/; revision=19297
2008-01-01 22:58:49 +00:00
Priit Laes
cc7e25a8c5 Translation updated by Ivar Smolin
2008-01-02  Priit Laes  <plaes at svn dot gnome dot org>

	* et.po: Translation updated by Ivar Smolin

svn path=/branches/gtk-2-12/; revision=19296
2008-01-01 22:58:18 +00:00
Johannes Schmid
7a7b67d9af Also reorder menu when reordering tabs by drag & drop
2007-12-30  Johannes Schmid <jhs@gnome.org>

        * gtk/gtknotebook.c: (gtk_notebook_stop_reorder):
        Also reorder menu when reordering tabs by drag & drop

        * tests/testnotebookdnd.c: (create_notebook_with_notebooks):
        Add a menu to one of the notebooks to have a test-case for
        the change mentioned above.


svn path=/branches/gtk-2-12/; revision=19293
2007-12-31 15:26:47 +00:00
Christian Persch
c098ad9322 Plug a mem leak. Bug #506107.
2007-12-31  Christian Persch  <chpe@gnome.org>

	* gtk/gtkprintunixdialog.c: (gtk_print_unix_dialog_get_property):
	Plug a mem leak. Bug #506107.

svn path=/branches/gtk-2-12/; revision=19291
2007-12-31 00:04:48 +00:00
Johan Dahlin
e990e263ee Merged from trunk:
2007-12-28  Johan Dahlin  <johan@gnome.org>

	Merged from trunk:

	* gtk/gtkdialog.c (gtk_dialog_buildable_custom_finished)
	(gtk_dialog_buildable_custom_tag_start): Chain up. 
	This makes it possible to have accelerators tags on GtkDialog 
	subclasses.


svn path=/branches/gtk-2-12/; revision=19269
2007-12-28 10:38:40 +00:00
Matthias Clasen
13714d2bf9 Fix 0<>NULL confusion in gtk_signal_connect... defines. (#505708, MINAMI
2007-12-27  Matthias Clasen  <mclasen@redhat.com>

        * gkt/gtksignal.h: Fix 0<>NULL confusion in gtk_signal_connect...
        defines.  (#505708,  MINAMI Hirokazu)



svn path=/branches/gtk-2-12/; revision=19254
2007-12-28 03:50:22 +00:00
Inaki Larranaga Murgoitio
26bfe50bda Updated Basque translation.
2007-12-27  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>

        * eu.po: Updated Basque translation.


svn path=/branches/gtk-2-12/; revision=19250
2007-12-27 15:21:06 +00:00
Inaki Larranaga Murgoitio
74bc175ff8 Updated Basque translation.
2007-12-27  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>

        * eu.po: Updated Basque translation.


svn path=/branches/gtk-2-12/; revision=19249
2007-12-27 15:19:04 +00:00
Jorge Gonzalez Gonzalez
eda5bfe265 Updated Spanish translation
svn path=/branches/gtk-2-12/; revision=19233
2007-12-24 10:59:07 +00:00
Cody Russell
8a41c27cf0 Merged from trunk:
2007-12-23  Cody Russell  <bratsche@gnome.org>

	Merged from trunk:

        * gdk/win32/gdkevents-win32.c (show_window_recurse): Check that
        the window is mapped before setting SW_RESTORE or SW_MINIMIZE.
        Fixes a regression caused by #164537 patch where transient
        windows that are hidden get shown (incorrectly) when their
        parents are minimized. (#504984)


svn path=/branches/gtk-2-12/; revision=19232
2007-12-23 21:18:14 +00:00
Xan Lopez
555fe02158 pass correct argument to g_signal_emit for TEST_EXPAND_ROW (GtkTreeIter*
2007-12-23  Xan Lopez  <xan@gnome.org>

	* gtk/gtktreeview.c (gtk_tree_view_build_tree): pass correct argument
	to g_signal_emit for TEST_EXPAND_ROW (GtkTreeIter* vs. GtkTreeIter**).

	Patch by Sadrul Habib Chowdhury (#504804)


svn path=/branches/gtk-2-12/; revision=19226
2007-12-23 01:29:15 +00:00
Seán de Búrca
421e584e60 Updated Irish translation.
2007-12-22  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Updated Irish translation.

svn path=/branches/gtk-2-12/; revision=19220
2007-12-22 10:01:07 +00:00
Richard Hult
1527fc1dc5 Merged from trunk:
2007-12-21  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_destroy):
	Plug leak of destroyed subviews, fixes bug #504753.

svn path=/branches/gtk-2-12/; revision=19219
2007-12-21 20:23:35 +00:00
Johan Dahlin
322dea23ec Merge from trunk: Refactor to avoid some duplication. Convert toplevel
2007-12-20  Johan Dahlin  <johan@gnome.org>

	Merge from trunk:
	* gtk/gtk-builder-convert (GtkBuilderConverter._remove_window): 
	Refactor to avoid some duplication.
	Convert toplevel GtkMenu's top popups and not menubars in the ui manager.
	Fixes #504749, Yuri Pimenov


svn path=/branches/gtk-2-12/; revision=19214
2007-12-20 23:54:28 +00:00
Seán de Búrca
9c9a94d7d1 Updated Irish translation.
2007-12-20  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Updated Irish translation.

svn path=/branches/gtk-2-12/; revision=19212
2007-12-20 19:42:56 +00:00
Richard Hult
ea100431e6 Merged from trunk:
2007-12-20  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/GdkQuartzWindow.c:
	* gdk/quartz/GdkQuartzWindow.h: Make manual resizing smoother by
	processing events after changing the size.

svn path=/branches/gtk-2-12/; revision=19207
2007-12-20 13:32:58 +00:00
Kristian Rietveld
4f80d8cad3 Merge from trunk.
2007-12-17  Kristian Rietveld  <kris@imendio.com>

	Merge from trunk.

	* gtk/gtktooltip.c (gtk_tooltip_finalize),
	(gtk_tooltip_set_last_window): use a weak pointer to set last_window
	to NULL as soon as it's destroyed.  (#496546, patch from
	Benjamin Berg).


svn path=/branches/gtk-2-12/; revision=19194
2007-12-17 22:49:10 +00:00
Daniel Nylander
a7f987efde sv.po: Swedish translation updated
svn path=/branches/gtk-2-12/; revision=19193
2007-12-17 18:20:08 +00:00
Daniel Nylander
38f0b9edb7 sv.po: Swedish translation updated
svn path=/branches/gtk-2-12/; revision=19191
2007-12-17 18:13:21 +00:00
Mathias Hasselmann
10a9738f66 Prevent assertion failure in gtk_paned_find_neighbours. (#503824,
Sébastien Granjoux)

* gtk/gtkpaned.c: Call gtk_container_forall instead of
gtk_container_foreach in get_child_panes.

svn path=/branches/gtk-2-12/; revision=19187
2007-12-16 19:24:01 +00:00
Xan Lopez
0df9c38c7c Merged from trunk:
2007-12-15  Xan Lopez  <xan.lopez@nokia.com>

	Merged from trunk:

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_reorder):

	Plug leak: When reordering the info in the list the old node is
	removed but not freed. (#503569)



svn path=/branches/gtk-2-12/; revision=19185
2007-12-15 11:25:54 +00:00
Sebastian Dröge
761534e891 Merged from trunk: Use u32 instead of __u32 and u8 instead of __u8 as the
Merged from trunk:
* gdk/directfb/gdkcursor-directfb.c: (gdk_cursor_new_for_display):
Use u32 instead of __u32 and u8 instead of __u8 as the other types
are deprecated since DirectFB 1.0.0. If compiling with an older
version define the new type name to the old types. Fixes bug #503190.

svn path=/branches/gtk-2-12/; revision=19183
2007-12-15 05:01:43 +00:00
Kostas Papadimas
d75204ce72 Updated Greek translation
svn path=/branches/gtk-2-12/; revision=19158
2007-12-11 15:51:40 +00:00
Richard Hult
109aa20ac8 Merged from trunk:
2007-12-10  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkdrawable-quartz.c:
	(gdk_quartz_drawable_get_context),
	(gdk_quartz_drawable_release_context):
	* gdk/quartz/gdkeventloop-quartz.c: (gdk_event_prepare),
	(gdk_event_check), (gdk_event_dispatch), (poll_func):
	* gdk/quartz/gdkwindow-quartz.h: Replace the autorelease pools
	used for each drawing context and in prepare, dispatch and poll
	with one that exists across each main loop iteration. Fixes leaks
	on leopard and protects against future leaks introduce when the
	underlying system changes again (bug #492977).

svn path=/branches/gtk-2-12/; revision=19150
2007-12-10 20:25:07 +00:00
Richard Hult
1b0b68823f Merged from trunk:
2007-12-10  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkwindow-quartz.c: (move_resize_window_internal):
	Fix the check for no changes to position and size.

svn path=/branches/gtk-2-12/; revision=19148
2007-12-10 19:51:20 +00:00
Richard Hult
2967e14fd2 Merged from trunk:
2007-12-10  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/GdkQuartzView.c: Ignore drawRect calls with zero
	sized areas at (0, 0), patch from Paul Davis.

svn path=/branches/gtk-2-12/; revision=19146
2007-12-10 19:39:53 +00:00
Richard Hult
4b944e5ceb Merged from trunk:
2007-12-10  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkprivate-quartz.h: 
	* gdk/quartz/gdkeventloop-quartz.c:
	(_gdk_quartz_event_loop_get_pending),
	(_gdk_quartz_event_loop_check_pending),
	(_gdk_quartz_event_loop_release_event), (gdk_event_prepare),
	(gdk_event_check), (gdk_event_dispatch):
	* gdk/quartz/gdkevents-quartz.c: (gdk_events_pending)
	(_gdk_events_queue): Fix a bug where we could end up trying to
	handle the same event more than once. Based on patch from Paul
	Davis.

svn path=/branches/gtk-2-12/; revision=19144
2007-12-10 19:17:45 +00:00
Tor Lillqvist
359f67ff92 Merged from trunk:
2007-12-10  Tor Lillqvist  <tml@novell.com>

	Merged from trunk:

	* gtk-zip.sh.in: Include bin/gtk-builder-convert in the dev
	package. (#502850)


svn path=/branches/gtk-2-12/; revision=19142
2007-12-10 14:29:06 +00:00
Matthias Clasen
f24bc05f6f Another fix to avoid further fallout from the fix for bug 388321.
2007-12-10  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_real_remove): Another fix
        to avoid further fallout from the fix for bug 388321.



svn path=/branches/gtk-2-12/; revision=19140
2007-12-10 06:21:51 +00:00
Matthias Clasen
ac65b919f6 Fix the spinguard logic for big buffers. (#494667, Ed Catmur)
2007-12-09  Matthias Clasen  <mclasen@redhat.com>

        * io-jpeg.c: Fix the spinguard logic for big buffers.
        (#494667, Ed Catmur)


svn path=/branches/gtk-2-12/; revision=19136
2007-12-09 18:56:27 +00:00
Matthias Clasen
5af07304e6 Don't leak pixbufs. (#502250, Yevgen Muntyan)
2007-12-07  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkfilechooserdefault.c (shortcuts_reload_icons): Don't
        leak pixbufs.  (#502250, Yevgen Muntyan)


svn path=/branches/gtk-2-12/; revision=19129
2007-12-07 18:58:08 +00:00
Richard Hult
9cbebf285b Merged from trunk:
2007-12-06  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkevents-quartz.c:
	(synthesize_crossing_events_for_ns_event): Fix warning when
	switching spaces in leopard.

svn path=/branches/gtk-2-12/; revision=19120
2007-12-06 12:44:16 +00:00
Matthias Clasen
bc9f7d7d8b Bump version
svn path=/branches/gtk-2-12/; revision=19114
2007-12-04 21:16:02 +00:00
Matthias Clasen
c29a297737 2.12.3
svn path=/branches/gtk-2-12/; revision=19112
2007-12-04 20:36:21 +00:00
Matthias Clasen
9fde410c97 Updates
2007-12-04  Matthias Clasen  <mclasen@redhat.com>

        * NEWS: Updates



svn path=/branches/gtk-2-12/; revision=19111
2007-12-04 19:16:09 +00:00
Richard Hult
5e439f2306 Merged from trunk:
2007-12-04  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_init):
	Fully initialize the root window, fixes bug #501583.

svn path=/branches/gtk-2-12/; revision=19110
2007-12-04 19:10:19 +00:00
Matthias Clasen
6a6b25c93b Modify the tab-label-destroy fix to not crash epiphany.
2007-12-04  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c: Modify the tab-label-destroy fix to not
        crash epiphany.


svn path=/branches/gtk-2-12/; revision=19108
2007-12-04 18:44:55 +00:00
Richard Hult
4c1bab5db8 Merged from trunk:
2007-12-03  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gtk/gtkquartz.c: (_gtk_quartz_set_selection_data_for_pasteboard):
	Don't crash when dragging from a source that doesn't support uri
	lists (bug #499868, Paul Davis).

svn path=/branches/gtk-2-12/; revision=19103
2007-12-03 19:53:56 +00:00
Richard Hult
4e99673620 Merged from trunk:
2007-12-03  Richard Hult  <richard@imendio.com>

	Merged from trunk:

	* gdk/quartz/gdkwindow-quartz.c:
	(gdk_window_impl_quartz_begin_paint_region): Don't crash when a
	parent relative bg pixmap is set, and no parent has a bg
	pixmap. Fixes bug #500804.

svn path=/branches/gtk-2-12/; revision=19101
2007-12-03 19:37:17 +00:00
Seán de Búrca
00caaf8b51 Updated Irish translation.
2007-12-02  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Updated Irish translation.

svn path=/branches/gtk-2-12/; revision=19097
2007-12-02 22:09:15 +00:00
Cody Russell
0e9c362952 Merged from trunk:
2007-12-1  Cody Russell  <bratsche@gnome.org>

	Merged from trunk:

	* gtk/gtkpaned.c: (gtk_paned_set_position) [Win32]:      
	On Windows, queue a redraw of child2 whenever we set
	the pane handle position.  This is unfortunately kind
	of hacky, but solves the visual artifacts that were
	occuring on at least certain types of child widgets
	(e.g., text views and tree views) that are inside
	horizontal or vertical panes. (#144269)


svn path=/branches/gtk-2-12/; revision=19096
2007-12-01 22:33:56 +00:00
Stéphane Raimbault
7ec6657e4a Fixed French translation.
2007-11-28  Stéphane Raimbault  <stephane.raimbault@gmail.com>

	* fr.po: Fixed French translation.

svn path=/branches/gtk-2-12/; revision=19089
2007-11-28 08:56:19 +00:00
Priit Laes
21e70a8aee Translation updated by Ivar Smolin.
2007-11-28  Priit Laes  <plaes@svn.gnome.org>

	* et.po: Translation updated by Ivar Smolin.

svn path=/branches/gtk-2-12/; revision=19088
2007-11-28 07:23:18 +00:00
Priit Laes
69d039dfb0 Translation updated by Ivar Smolin.
2007-11-28  Priit Laes  <plaes@svn.gnome.org>

	* et.po: Translation updated by Ivar Smolin.

svn path=/branches/gtk-2-12/; revision=19087
2007-11-28 07:22:39 +00:00
Seán de Búrca
0ce517a221 Updated Irish translation
2007-11-27  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Updated Irish translation

svn path=/branches/gtk-2-12/; revision=19086
2007-11-28 06:16:16 +00:00
Tor Lillqvist
c209b1c750 Merged from trunk:
2007-11-28  Tor Lillqvist  <tml@novell.com>

	Merged from trunk: 

	A proper build of GNU libintl is supposed to export the variable
	_nl_msg_cat_cntr. configure looks for that variable in order to
	recognize GNU gettext. If it sees that it is indeed GNU gettext
	that is used, it decides to install message catalogs in
	share/locale, otherwise in lib/locale. Until now on Windows I have
	built GTK+ against a build of GNU gettext that did not export
	_nl_msg_cat_cntr. But this will change, so we can't assume message
	catalogs are always in lib/locale.

	* gtk/gtkmain.c: (_gtk_get_localedir) [Win32]: Rework to handle
	GTK_LOCALEDIR being either in "lib" or "share". Move the function
	before the inclusion of gtkprivate.h so that it sees the original
	GTK_LOCALEDIR.

	* gtk-zip.sh.in: Check whether the message catalogs are in
	share/locale or lib/locale.

	* config.h.win32.in: Tack on "/share/locale" to GTK_LOCALEDIR so
	that the code in _gtk_get_localedir() will find the slashes.


svn path=/branches/gtk-2-12/; revision=19085
2007-11-28 01:16:48 +00:00
Tor Lillqvist
0937798f0e Merged from trunk: Fix #375893, patch by Ben Hague:
2007-11-28  Tor Lillqvist  <tml@novell.com>

	Merged from trunk: Fix #375893, patch by Ben Hague:

	* gtk/gtkfilesystemwin32.c (get_viewable_logical_drives): Wrapper
	around GetLogicalDrives() that takes also the viewable drive
	restrictions in the Registry (which are usually the result of an
	Active Directory Group Policy) into account.

	(check_volumes, gtk_file_system_win32_list_volumes) Call
	get_viewable_logical_drives() instead of GetLogicalDrives().


svn path=/branches/gtk-2-12/; revision=19080
2007-11-27 22:32:27 +00:00
Matthias Clasen
e9a0d2a444 Zero some variables to silence valgrind. (#495124, Morten Welinder)
2007-11-27  Matthias Clasen <mclasen@redhat.com>

        * gtk/gtkwindow.c (gtk_window_move_resize): Zero some
        variables to silence valgrind.  (#495124, Morten Welinder)


svn path=/branches/gtk-2-12/; revision=19078
2007-11-27 18:16:59 +00:00
Mart Raudsepp
3dcb893b4b Merged from trunk:
2007-11-27  Mart Raudsepp  <leio@gentoo.org>

        Merged from trunk:

        * tests/buildertest.c: (test_window): fix invalid free

svn path=/branches/gtk-2-12/; revision=19076
2007-11-27 16:21:25 +00:00
Matthias Clasen
b78cefa20b Bump version
svn path=/branches/gtk-2-12/; revision=19069
2007-11-26 20:54:52 +00:00
Matthias Clasen
37e471289f 2.12.2
svn path=/branches/gtk-2-12/; revision=19067
2007-11-26 20:52:44 +00:00
Matthias Clasen
13c588303f Fix up some doc comments
svn path=/branches/gtk-2-12/; revision=19065
2007-11-26 20:13:27 +00:00
Matthias Clasen
10df3fe5ea Updates
svn path=/branches/gtk-2-12/; revision=19064
2007-11-26 19:34:47 +00:00
Matthias Clasen
26a6bcd73b Use $CUPS_CONFIG instead of hardcoded cups-config. (#495574, Richard Hult)
2007-11-26  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Use $CUPS_CONFIG instead of hardcoded cups-config.
        (#495574, Richard Hult)


svn path=/branches/gtk-2-12/; revision=19063
2007-11-26 19:07:45 +00:00
Matthias Clasen
310b25767c Short-circuit on destroy. (gtk_notebook_destroy): Destroy tab_label
2007-11-26  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_update_labels): Short-circuit on
        destroy.
        (gtk_notebook_destroy): Destroy tab_label widgets. (#388321, Morten
        Welinder)


svn path=/branches/gtk-2-12/; revision=19060
2007-11-26 18:23:16 +00:00
Matthias Clasen
61ae384fcc Improve alternative button ordering. (#476827, Yevgen Muntyan, patch by
2007-11-26  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkassistant.c: Improve alternative button
        ordering.  (#476827, Yevgen Muntyan, patch by Carlos Garnacho)


svn path=/branches/gtk-2-12/; revision=19058
2007-11-26 18:17:21 +00:00
Matthias Clasen
9c262a1e27 Fix a theming problem with colors in GtkCalendar. (#499703, Michael
2007-11-26  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkcalendar.c: Fix a theming problem with colors
        in GtkCalendar.  (#499703, Michael Hofmann)


svn path=/branches/gtk-2-12/; revision=19056
2007-11-26 17:43:07 +00:00
Matthias Clasen
7d02f89099 Don't use guint8 for bitfields, since some compilers choke on that.
2007-11-26  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkfilechooserbutton.c:
        * gtk/gtktoolbar.c: Don't use guint8 for bitfields, since
        some compilers choke on that.  (#467722)


svn path=/branches/gtk-2-12/; revision=19052
2007-11-26 17:12:18 +00:00
Tor Lillqvist
66c3f0984b Use the monitor the window currently is on, not always the primary
2007-11-26  Tor Lillqvist  <tml@novell.com>

	* gdk/win32/gdkwindow-win32.c (gdk_window_fullscreen): Use the
	monitor the window currently is on, not always the primary
	monitor. (#463865, Tim Evans)


svn path=/branches/gtk-2-12/; revision=19046
2007-11-25 22:57:32 +00:00
Matthias Clasen
d393a037d9 Fix a typo. (#498922)
2007-11-25  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtktreeview.c (gtk_tree_view_set_show_expanders): Fix a
        typo.  (#498922)


svn path=/branches/gtk-2-12/; revision=19040
2007-11-25 06:09:47 +00:00
Seán de Búrca
c005046c17 Updated Irish translation.
2007-11-24  Seán de Búrca  <sdeburca@svn.gnome.org>

    * ga.po: Updated Irish translation.

svn path=/branches/gtk-2-12/; revision=19037
2007-11-24 22:46:09 +00:00
Matthias Clasen
9c6e62a231 Merged from trunk:
2007-11-22  Matthias Clasen  <mclasen@redhat.com>

        Merged from trunk:

        * modules/printbackends/cups/gtkcupsutils.c: Fix a casting problem.
        (#485662, patch by Herbert Valerio Riedel)



svn path=/branches/gtk-2-12/; revision=19031
2007-11-22 06:17:58 +00:00
Matthias Clasen
42c6c0516f Merged from trunk:
2007-11-22  Matthias Clasen  <mclasen@redhat.com>

        Merged from trunk:

        * gtk/gtktextiter.c: Fix an aliasing problem.  (#347585, Ed Catmur)



svn path=/branches/gtk-2-12/; revision=19030
2007-11-22 06:16:35 +00:00
Matthias Clasen
d6279caadd Merged from trunk:
2007-11-22  Matthias Clasen  <mclasen@redhat.com>

        Merged from trunk:

        * tests/testrichtext.c (setup_buffer): Fix C89 compilation issue.
        (#467711, The Written Word)



svn path=/branches/gtk-2-12/; revision=19029
2007-11-22 06:15:04 +00:00
Matthias Clasen
6a13e3d82b Merged from trunk:
2007-11-22  Matthias Clasen  <mclasen@redhat.com>

        Merged from trunk:

        * gtk/gtktoolbar.c: Fix the default value of the toolbar-style
        property.  (#489782, Jan Janech)



svn path=/branches/gtk-2-12/; revision=19028
2007-11-22 06:13:23 +00:00
Matthias Clasen
7306716d4a Merged from trunk:
2007-11-22  Matthias Clasen  <mclasen@redhat.com>

        Merged from trunk:

        * gtk/gtkimage.c (animation_timeout): Avoid drawing one too many
        frames.  (#107398, Owen Taylor, Miguel Gomez)



svn path=/branches/gtk-2-12/; revision=19027
2007-11-22 06:11:46 +00:00
Matthias Clasen
1818a9cb06 Add branch marker
svn path=/branches/gtk-2-12/; revision=19026
2007-11-22 06:08:23 +00:00
2896 changed files with 2429162 additions and 67716 deletions

878
ChangeLog
View File

@@ -1,3 +1,878 @@
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* === Released 2.12.8 ===
* NEWS: Updates
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* gtk/gtkpapersize.c:
* gtk/gtkprintoperation.c:
* gtk/gtkvolumebutton.c:
* gtk/gtkbulderparser.c: Fix some i18n errors. Pointed
out by Behdad Esfahbod.
2008-02-12 Cody Russell <bratsche@gnome.org>
Merged from trunk:
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkevents-win32.c
* gdk/win32/gdkwindow-win32.c
* gdk/win32/gdkwindow-win32.h
* gdk/win32/gdkwin32.h:
Modal window rework. (#455627, #511111, #514643, #514789)
2008-02-12 Cody Russell <bratsche@gnome.org>
Merged from trunk:
* gtk/gtkfilechooser.c (gtk_file_chooser_get_current_folder_uri):
Check the return value of _gtk_file_chooser_get_file_system () for
NULL before passing it to gtk_file_system_path_to_uri ().
(#515667, Francesco Montorsi)
2008-02-12 Federico Mena Quintero <federico@novell.com>
* gtk/gtkfilechooserdefault.c (switch_to_shortcut): Don't focus
the file list (this was the last place where we would focus the
file list explicitly). If you are in the location entry, for
example, you don't want Alt-Home to take you to the file list; you
just want the current folder to change. Thanks to Olle Bergkvist
<olle.bergkvist@yahoo.se> for pointing this out in
http://bugzilla.gnome.org/show_bug.cgi?id=419737#c51.
(focus_browse_tree_view_if_possible): Removed.
2008-02-12 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
Skip exensions when selecting filenames in the save-as dialog.
(#362516, Carlos Garnacho)
* gtk/gtkfilechooserentry.h:
* gtk/gtkfilechooserentry.c (_gtk_file_chooser_entry_select_filename):
New function to skip the extension part when selecting a filename.
(_gtk_file_chooser_entry_set_base_folder): Use it here.
* gtkfilechooserdefault.c (gtk_file_chooser_entry_grab_focus):
...and here.
2008-02-12 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkiconview.c: Fix state change reporting for
accessibility. (#499835, Rich Burridge, patch by LiYan Zhang)
2008-02-12 Emmanuele Bassi <ebassi@gnome.org>
Merged from trunk:
* gtk/gtkrecentchooser.c:
(gtk_recent_chooser_class_init): Set the default value of the
show-not-found property to TRUE, as every implementation sets
it to TRUE already.
* gtk/gtkrecentchooserdefault.c:
(_gtk_recent_chooser_default_init): Sync show_tips to the
default value of the :show-tips property.
2008-02-12 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/*.c: Unify the handling of various "Enter" keysyms
all over the place. (#515047, Christian Persch)
2008-02-12 Kristian Rietveld <kris@imendio.com>
Merge from trunk:
* gtk/gtktreeview.c (gtk_tree_view_real_select_cursor_row),
(gtk_tree_view_real_toggle_cursor_row): guard against people
deleting the row in question in the selection-changed callback.
(#514621, Andreas Koehler).
2008-02-11 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
Support keynav in status icons. (#473786, Li Yuan)
* gtk/gtkstatusicon.c: Handle keynav, make the tray icon
focusable.
* gtk/gtktrayicon-x11.c: Draw a focus rectangle when
focused.
2008-02-11 Kristian Rietveld <kris@imendio.com>
Merge from trunk:
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_reorder)
* gtk/gtkiconview.c (gtk_icon_view_cell_layout_reorder): plug leak
wrt. link deletion from list; contination of fix for #503569.
2008-02-11 Emmanuele Bassi <ebassi@gnome.org>
Merge from trunk:
* gtk/gtkrecentchoosermenu.c:
(gtk_recent_chooser_menu_constructor): Set no-show-all flag
on the placeholder menu item.
* tests/testrecentchoosermenu.c:
(create_recent_chooser_menu): Use gtk_widget_show_all() to test
whether the placeholder menu item gets shown.
2008-02-10 Matthias Clasen <mclasen@redhat.com>
Merge from trunk:
* gtk/gtkrecentaction.c: Propagate local-only. (#511987,
Jonh Wendell)
2008-02-08 Richard Hult <richard@imendio.com>
Merge from trunk:
* gdk/quartz/gdkevents-quartz.c (gdk_event_translate): Ignore the
delta from the NSEvent for now, generating multiple scroll events
results in a lot of events getting queued up and things get really
slow.
2008-02-08 Sven Herzberg <sven@imendio.com>
Merge from trunk:
Adjust the code to match the documentation, examples, "common sense"
and existing applications.
* gtk/gtkaction.c: (_gtk_action_sync_menu_visible): take into account
that a GtkMenu for a <popup> element doesn't have to have a GtkAction
assigned
2008-02-06 Cody Russell <bratsche@gnome.org>
Merge from trunk:
* gdk/win32/gdkevents-win32.c: Check if the window is a temp window,
otherwise things get wonky when you click on a menu. This fixes
a regression caused in #505928. Thanks to Tor for spotting this
one! (#514789)
2008-02-05 Matthias Clasen <mclasen@redhat.com>
Merge from trunk:
* gtk/gtkprintsettings.c (gtk_print_settings_get_page_ranges):
Allow to store half-open ranges.
2008-02-05 Federico Mena Quintero <federico@novell.com>
Don't focus the file list when shortcuts get activated. This
removes a lot of ambiguity in when the file selection should
change, and makes the overall code flow simpler.
This fixes http://bugzilla.gnome.org/show_bug.cgi?id=419737 -
file/save dialog clears the filename entry when changing
directories.
Also fixes http://bugzilla.gnome.org/show_bug.cgi?id=499940 -
focus should not go to the file list when a shortcut is activated.
* gtk/gtkfilechooserdefault.c
(shortcuts_activate_volume_mount_cb): Don't focus the file list
(shortcuts_activate_get_info_cb): Likewise.
2008-02-05 Federico Mena Quintero <federico@novell.com>
Don't focus the file list when shortcuts get activated. This
removes a lot of ambiguity in when the file selection should
change, and makes the overall code flow simpler.
This fixes http://bugzilla.gnome.org/show_bug.cgi?id=419737 -
file/save dialog clears the filename entry when changing
directories.
Also fixes http://bugzilla.gnome.org/show_bug.cgi?id=499940 -
focus should not go to the file list when a shortcut is activated.
* gtk/gtkfilechooserdefault.c
(shortcuts_activate_volume_mount_cb): Don't focus the file list
(shortcuts_activate_get_info_cb): Likewise.
2008-02-05 Federico Mena Quintero <federico@novell.com>
Merged from trunk (patch by Josselin Mouette <joss@malsain.org>):
reviewed by: Federico Mena Quintero
* gtk/gtkfilechooserdefault.c: (shortcuts_append_paths),
(shortcuts_add_bookmarks), (shortcuts_selection_changed_cb),
(shortcuts_list_create), (gtk_file_chooser_default_should_respond):
Make the shortcuts activate with a single click. (#148828)
Fix a few things affected by the change:
- Set selection mode to GTK_SELECTION_SINGLE to allow a case
where no shortcut is selected.
- Don't activate a shortcut in the response callback.
- Filter out duplicate entries in volumes and bookmarks to
avoid the selection to change when reordering them with DnD.
2008-02-05 Matthias Clasen <mclasen@redhat.com>
Merge from trunk:
* gtk/updateiconcache.c: Ignore images in the toplevel theme
directory, avoiding one source of invalid caches that
has been spotted in the wild.
* gtk/updateiconcache.c: Install a printerr handler that
prepends the program name, since gtk-update-icon-cache output
often appears in the middle of other output, e.g. rpm
update logs.
2008-02-01 Cody Russell <cody@jhu.edu>
Merge from trunk:
* modules/engines/ms-windows/xp_theme.[ch]
* modules/engines/ms-windows/xp_theme_defs.h
* modules/engines/ms-windows/msw_rc_style.c
* modules/engines/ms-windows/msw_theme_main.c
* modules/engines/ms-windows/msw_style.c: Re-indented and generally
attempted to stylize more like the rest of the gtk+ stack's code.
2008-02-01 Sven Neumann <sven@gimp.org>
* gdk/directfb/gdkdrawable-directfb.c
* gdk/directfb/gdkimage-directfb.c
* gdk/directfb/gdkinput-directfb.c
* gdk/directfb/gdkpixmap-directfb.c
* gdk/directfb/gdkwindow-directfb.c: applied
directfb-deprecation-fixes.patch from Debian. Fixes build with
GLib 2.15 deprecation of G_GNUC_FUNCTION in favor of G_STRLOC.
2008-01-31 Cody Russell <bratsche@gnome.org>
Merge from trunk:
* gdk/win32/gdkevents-win32.c:
Refactored some of the window hiding/showing code from
WM_ACTIVATE to WM_SIZE and WM_SYSCOMMAND. Having this
under WM_ACTIVATE was causing the application to go into
a weird state when the user right-clicked on the taskbar
entry of a window that was minimized. (#505928)
2008-01-31 Cody Russell <bratsche@gnome.org>
Merge from trunk:
* gtk/gtkpaned.c (gtk_paned_set_position):
Change queue_resize() to queue_draw(), and add a check for
child2 != NULL in case someone calls this before there is
a child packed in there. (#144269 again)
2008-01-31 Richard Hult <richard@imendio.com>
Merge from trunk, except for the reverting since that part wasn't
applied here yet:
* gdk/quartz/GdkQuartzView.c: Another attempt at fixing focus
issues with undecorated windows. Revert the change done on
2008-01-25 and fix it by using the view's bounds instead. The
bounds will always be up to date when setting up the tracking
rect, so this should be more robust.
2008-01-29 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version
* === Released 2.12.7 ===
2008-01-28 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version
* === Released 2.12.6 ===
* NEWS: Updates
* configure.in: Bump version
2008-01-28 Paolo Borelli <pborelli@katamail.com>
* gtk/gtkprintunixdialog.c (draw_page_cb): do not leak the pango
layout, fixes #512375.
2008-01-25 Johan Dahlin <johan@gnome.org>
Merge from trunk:
* gtk/gtk-builder-convert
(GtkBuilderConverter._convert_adjustment): Handle the case where
there is no child text node.
(GtkBuilderConverter): Allow xml comments in most places.
* gtk/gtk-builder-convert
(GtkBuilderConverter._convert_combobox_items): Remove the items
even if there are no items set.
(GtkBuilderConverter._add_action_from_menuitem): Convert toggled
signals and tooltips for all menu items subclasses and
GtkImageMenuItem:label.
Makes it possible to fully convert and run Jokosher.glade.
* gtk/gtkwidget.c: (gtk_widget_buildable_interface_init),
(gtk_widget_buildable_get_internal_child), (free_action),
(free_relation), (gtk_widget_buildable_parser_finished),
(accessibility_start_element),
(gtk_widget_buildable_custom_tag_start),
(gtk_widget_buildable_custom_finished):
Implement accessible support, fixes #454653.
* gtk/gtk-builder-convert:
Add support for migrating old glade files
* tests/buildertest.c: (test_widget), (test_file):
Add accessible tests and imprve the test_file function to display
toplevels and run dialogs.
2008-01-25 Sven Herzberg <sven@imendio.com>
Merge from trunk:
Reviewed by Johan Dahlin.
* gtk/gtkuimanager.c (gtk_ui_manager_remove_ui): emit a warning if
this is called with something that's not a GtkUIManager
2008-01-18 Johan Dahlin <johan@gnome.org>
Merge from trunk:
* gtk/gtk-builder-convert (get_property_node): New method
(GtkBuilderConverter._create_object): Conditionally take a node as
a property value, so don't lose translate/context attributes if they
are set.
(GtkBuilderConverter._add_action_from_menuitem): Send in Node as
property values instead of strings.
(#509153, Erik van Pienbroek)
2008-01-12 Andre Klapper <a9016009@gmx.de>
* configure.in: add Kannada (kn) and Sinhala (si) to ALL_LINGUAS.
2008-01-10 Cody Russell <bratsche@gnome.org>
Merge from trunk:
* gdk/win32/gdkwindow-win32.c: (gdk_window_set_transient_for),
Properly ref/unref windows and parents. (#506769)
2008-01-10 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
(gdk_window_hide), (move_resize_window_internal): Move the
tracking rect workaround from here...
* gdk/quartz/GdkQuartzWindow.c:
* gdk/quartz/GdkQuartzWindow.h: ...to here, and ignore window
movements during showing/hiding operations. Fixes bug #508516.
2008-01-10 Kristian Rietveld <kris@imendio.com>
Merge from trunk:
* gtk/gtktreeview.c (gtk_tree_view_motion_draw_column_motion_arrow),
(_gtk_tree_view_column_start_drag): fully initialize GdkWindowAttr to
avoid valgrind warnings. (#507751, patch from Christian Persch).
2008-01-10 Kristian Rietveld <kris@imendio.com>
Merge from trunk:
* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_get_path): Fix
a leak of the path (#504611, patch from Sadrul Habib Chowdhury).
2008-01-10 Kristian Rietveld <kris@imendio.com>
Merge from trunk (omitted unit test updates):
Fix #477175, reported by Juri Pakaste.
* gtk/gtktreeprivate.h:
* gtk/gtktreeview.c (gtk_tree_view_top_row_to_dy): do not set
tree_view->priv->dy here directly, just calculate the new value
and set it on the adjustment,
(gtk_tree_view_adjustment_changed): add guards to not call
gtk_tree_view_dy_to_top_row() if we are currently in
gtk_tree_view_top_row_to_dy(),
(gtk_tree_view_put): fix coordinate annotation: these are bin_window
coordinates, not tree coordinates,
(gtk_tree_view_real_start_editing): add cast.
2007-01-06 Johan Dahlin <johan@gnome.org>
Merged from trunk:
* gtkbuilder.c: remove concept of root objects and just refcount
all objects in the builder. Fixes #496651.
* docs/reference/gtk/tmpl/gtkbuildable.sgml: add clarification stating
that the construct_child function is responsible for returning a
reference.
* gtkbuilder.c (_gtk_builder_construct): remove g_object_ref() for
objects from constructors
* gtkuimanager.c (gtk_ui_manager_buildable_construct_child): add
g_object_ref() to this construction function (it's the only
implementer in GTK)
Fixes #496645.
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version
* === Released 2.12.5 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version
* === Released 2.12.4 ===
2008-01-07 Matthias Clasen <mclasen@redhat.com>
* NEWS: Updates
2008-01-07 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkassistant.c (remove_page): Be more robust when removing
the current page. (#499951, Andreas Sandberg)
2007-01-06 Johan Dahlin <johan@gnome.org>
Merged from trunk:
* gtk/gtk-builder-convert (GtkBuilderConverter._strip_root):
Make sure that --root works for toplevel widgets.
(#491847, Phil Lello)
2008-01-04 Michael Natterer <mitch@imendio.com>
Merged from trunk:
* gdk/x11/gdkinput-x11.c (_gdk_device_get_history): don't forget
to set the time in the returned GdkTimeCoords.
2008-01-03 Emmanuele Bassi <ebassi@gnome.org>
Backport from trunk
* gtk/gtkfilechooserdefault.c (recent_sort_mru): Use the
correct comparison function (kudos to Christian Persch and
Claudio Saavedra for spotting this).
* gtk/gtkrecentchooserutils.c:
(sort_recent_items_mru),
(sort_recent_items_lru): Ditto as above.
2007-12-30 Johannes Schmid <jhs@gnome.org>
* gtk/gtknotebook.c: (gtk_notebook_stop_reorder):
Also reorder menu when reordering tabs by drag & drop
* tests/testnotebookdnd.c: (create_notebook_with_notebooks):
Add a menu to one of the notebooks to have a test-case for
the change mentioned above.
2007-12-31 Christian Persch <chpe@gnome.org>
* gtk/gtkprintunixdialog.c: (gtk_print_unix_dialog_get_property):
Plug a mem leak. Bug #506107.
2007-12-28 Johan Dahlin <johan@gnome.org>
Merged from trunk:
* gtk/gtkdialog.c (gtk_dialog_buildable_custom_finished)
(gtk_dialog_buildable_custom_tag_start): Chain up.
This makes it possible to have accelerators tags on GtkDialog
subclasses.
2007-12-27 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gkt/gtksignal.h: Fix 0<>NULL confusion in gtk_signal_connect...
defines. (#505708, MINAMI Hirokazu)
2007-12-23 Cody Russell <bratsche@gnome.org>
Merged from trunk:
* gdk/win32/gdkevents-win32.c (show_window_recurse): Check that
the window is mapped before setting SW_RESTORE or SW_MINIMIZE.
Fixes a regression caused by #164537 patch where transient
windows that are hidden get shown (incorrectly) when their
parents are minimized. (#504984)
2007-12-23 Xan Lopez <xan@gnome.org>
* gtk/gtktreeview.c (gtk_tree_view_build_tree): pass correct argument
to g_signal_emit for TEST_EXPAND_ROW (GtkTreeIter* vs. GtkTreeIter**).
Patch by Sadrul Habib Chowdhury (#504804)
2007-12-21 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_destroy):
Plug leak of destroyed subviews, fixes bug #504753.
2007-12-20 Johan Dahlin <johan@gnome.org>
* gtk/gtk-builder-convert (GtkBuilderConverter._remove_window):
Refactor to avoid some duplication.
Convert toplevel GtkMenu's top popups and not menubars in the ui manager.
Fixes #504749, Yuri Pimenov
2007-12-20 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/GdkQuartzWindow.c:
* gdk/quartz/GdkQuartzWindow.h: Make manual resizing smoother by
processing events after changing the size.
2007-12-17 Kristian Rietveld <kris@imendio.com>
Merge from trunk.
* gtk/gtktooltip.c (gtk_tooltip_finalize),
(gtk_tooltip_set_last_window): use a weak pointer to set last_window
to NULL as soon as it's destroyed. (#496546, patch from
Benjamin Berg).
2007-12-16 Mathias Hasselmann <mathias@openismus.com>
Prevent assertion failure in gtk_paned_find_neighbours. (#503824,
Sébastien Granjoux)
* gtk/gtkpaned.c: Call gtk_container_forall instead of
gtk_container_foreach in get_child_panes.
2007-12-15 Xan Lopez <xan.lopez@nokia.com>
Merged from trunk:
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_reorder):
Plug leak: When reordering the info in the list the old node is
removed but not freed. (#503569)
2007-12-15 Sebastian Dröge <slomo@circular-chaos.org>
Merged from trunk:
* gdk/directfb/gdkcursor-directfb.c: (gdk_cursor_new_for_display):
Use u32 instead of __u32 and u8 instead of __u8 as the other types
are deprecated since DirectFB 1.0.0. If compiling with an older
version define the new type name to the old types. Fixes bug #503190.
2007-12-10 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkdrawable-quartz.c:
(gdk_quartz_drawable_get_context),
(gdk_quartz_drawable_release_context):
* gdk/quartz/gdkeventloop-quartz.c: (gdk_event_prepare),
(gdk_event_check), (gdk_event_dispatch), (poll_func):
* gdk/quartz/gdkwindow-quartz.h: Replace the autorelease pools
used for each drawing context and in prepare, dispatch and poll
with one that exists across each main loop iteration. Fixes leaks
on leopard and protects against future leaks introduce when the
underlying system changes again (bug #492977).
2007-12-10 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkwindow-quartz.c: (move_resize_window_internal):
Fix the check for no changes to position and size.
2007-12-10 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/GdkQuartzView.c: Ignore drawRect calls with zero
sized areas at (0, 0), patch from Paul Davis.
2007-12-10 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkprivate-quartz.h:
* gdk/quartz/gdkeventloop-quartz.c:
(_gdk_quartz_event_loop_get_pending),
(_gdk_quartz_event_loop_check_pending),
(_gdk_quartz_event_loop_release_event), (gdk_event_prepare),
(gdk_event_check), (gdk_event_dispatch):
* gdk/quartz/gdkevents-quartz.c: (gdk_events_pending)
(_gdk_events_queue): Fix a bug where we could end up trying to
handle the same event more than once. Based on patch from Paul
Davis.
2007-12-10 Tor Lillqvist <tml@novell.com>
Merged from trunk:
* gtk-zip.sh.in: Include bin/gtk-builder-convert in the dev
package. (#502850)
2007-12-10 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtknotebook.c (gtk_notebook_real_remove): Another fix
to avoid further fallout from the fix for bug 388321.
2007-12-07 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkfilechooserdefault.c (shortcuts_reload_icons): Don't
leak pixbufs. (#502250, Yevgen Muntyan)
2007-12-06 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkevents-quartz.c:
(synthesize_crossing_events_for_ns_event): Fix warning when
switching spaces in leopard.
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.3 ===
2007-12-04 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_init):
Fully initialize the root window, fixes bug #501583.
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* NEWS: Updates
2007-12-04 Matthias Clasen <mclasen@redhat.com>
Merge from trunk:
* gtk/gtknotebook.c: Modify the tab-label-destroy fix to not
crash epiphany.
2007-12-03 Richard Hult <richard@imendio.com>
Merged from trunk:
* gtk/gtkquartz.c: (_gtk_quartz_set_selection_data_for_pasteboard):
Don't crash when dragging from a source that doesn't support uri
lists (bug #499868, Paul Davis).
2007-12-03 Richard Hult <richard@imendio.com>
Merged from trunk:
* gdk/quartz/gdkwindow-quartz.c:
(gdk_window_impl_quartz_begin_paint_region): Don't crash when a
parent relative bg pixmap is set, and no parent has a bg
pixmap. Fixes bug #500804.
2007-12-1 Cody Russell <bratsche@gnome.org>
Merged from trunk:
* gtk/gtkpaned.c: (gtk_paned_set_position) [Win32]:
On Windows, queue a redraw of child2 whenever we set
the pane handle position. This is unfortunately kind
of hacky, but solves the visual artifacts that were
occuring on at least certain types of child widgets
(e.g., text views and tree views) that are inside
horizontal or vertical panes. (#144269)
2007-11-28 Tor Lillqvist <tml@novell.com>
Merged from trunk:
A proper build of GNU libintl is supposed to export the variable
_nl_msg_cat_cntr. configure looks for that variable in order to
recognize GNU gettext. If it sees that it is indeed GNU gettext
that is used, it decides to install message catalogs in
share/locale, otherwise in lib/locale. Until now on Windows I have
built GTK+ against a build of GNU gettext that did not export
_nl_msg_cat_cntr. But this will change, so we can't assume message
catalogs are always in lib/locale.
* gtk/gtkmain.c: (_gtk_get_localedir) [Win32]: Rework to handle
GTK_LOCALEDIR being either in "lib" or "share". Move the function
before the inclusion of gtkprivate.h so that it sees the original
GTK_LOCALEDIR.
* gtk-zip.sh.in: Check whether the message catalogs are in
share/locale or lib/locale.
* config.h.win32.in: Tack on "/share/locale" to GTK_LOCALEDIR so
that the code in _gtk_get_localedir() will find the slashes.
2007-11-28 Tor Lillqvist <tml@novell.com>
Merged from trunk: Fix #375893, patch by Ben Hague:
* gtk/gtkfilesystemwin32.c (get_viewable_logical_drives): Wrapper
around GetLogicalDrives() that takes also the viewable drive
restrictions in the Registry (which are usually the result of an
Active Directory Group Policy) into account.
(check_volumes, gtk_file_system_win32_list_volumes) Call
get_viewable_logical_drives() instead of GetLogicalDrives().
2007-11-27 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkwindow.c (gtk_window_move_resize): Zero some
variables to silence valgrind. (#495124, Morten Welinder)
2007-11-27 Mart Raudsepp <leio@gentoo.org>
Merged from trunk:
* tests/buildertest.c: (test_window): fix invalid free
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* configure.in: Bump version
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.2 ===
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmain.c:
* gtk/gtknotebook.c:
* gtk/gtkplugprivate.h:
* gtk/gtksocket.c:
* gtk/gtksocketprivate.h:
* gtk/gtktable.c: Fix up some doc comments to shut up gtk-doc.
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* NEWS: Updates
2007-11-26 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* configure.in: Use $CUPS_CONFIG instead of hardcoded cups-config.
(#495574, Richard Hult)
2007-11-26 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtknotebook.c (gtk_notebook_update_labels): Short-circuit on
destroy.
(gtk_notebook_destroy): Destroy tab_label widgets. (#388321,
Morten Welinder)
2007-11-26 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkassistant.c: Improve alternative button
ordering. (#476827, Yevgen Muntyan, patch by Carlos Garnacho)
2007-11-26 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkcalendar.c: Fix a theming problem with colors
in GtkCalendar. (#499703, Michael Hofmann)
2007-11-26 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkfilechooserbutton.c:
* gtk/gtktoolbar.c: Don't use guint8 for bitfields, since
some compilers choke on that. (#467722)
2007-11-26 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (gdk_window_fullscreen): Use the
monitor the window currently is on, not always the primary
monitor. (#463865, Tim Evans)
2007-11-25 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtktreeview.c (gtk_tree_view_set_show_expanders): Fix a
typo. (#498922)
2007-11-22 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* modules/printbackends/cups/gtkcupsutils.c: Fix a casting problem.
(#485662, patch by Herbert Valerio Riedel)
2007-11-22 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtktextiter.c: Fix an aliasing problem. (#347585, Ed Catmur)
2007-11-22 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* tests/testrichtext.c (setup_buffer): Fix C89 compilation issue.
(#467711, The Written Word)
2007-11-22 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtktoolbar.c: Fix the default value of the toolbar-style
property. (#489782, Jan Janech)
2007-11-22 Matthias Clasen <mclasen@redhat.com>
Merged from trunk:
* gtk/gtkimage.c (animation_timeout): Avoid drawing one too many
frames. (#107398, Owen Taylor, Miguel Gomez)
2007-11-19 10:27:39 Tim Janik <timj@imendio.com>
=== Branch for 2.12 ===
2007-11-19 Matthias Clasen <mclasen@redhat.com>
* gtk/gtktreestore.c: Fix the GtkBuildable implementation
@@ -6890,6 +7765,9 @@ Fri Jan 26 13:07:07 2007 Tim Janik <timj@imendio.com>
* modules/printbackend/cups/*.c: Coding style cleanups.
2007-01-03 Matthias Clasen <mclasen@redhat.com>
=======
2008-02-07 Cody Russell <bratsche@gnome.org>
>>>>>>> 5cc1ee6... 2008-02-08 Sven Herzberg <sven@imendio.com>:ChangeLog
* configure.in: Export SED to make sourcing of
libtool work. Tighten up the directfb pkgconfig check.

View File

@@ -4,7 +4,7 @@ Prerequisites
GTK+ requires the following packages:
- The GLib, Pango, ATK and cairo libraries, available at the same
location as GTK+. GTK+ 2.12.1 requires at least GLib 2.12,
location as GTK+. GTK+ 2.12.8 requires at least GLib 2.12,
Pango 1.13, ATK 1.9 and cairo 1.2.
- The TIFF, PNG, and JPEG image loading libraries. You most
@@ -20,8 +20,8 @@ GTK+ requires the following packages:
Simple install procedure
========================
% gzip -cd gtk+-2.12.1.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.12.1 # change to the toplevel directory
% gzip -cd gtk+-2.12.8.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.12.8 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]

174
NEWS
View File

@@ -1,3 +1,177 @@
Overview of Changes from GTK+ 2.12.7 to 2.12.8
==============================================
* Make the directfb backend build with GLib 2.15
* Improve the handling of modal windows on win32
* GtkFileChooser:
- Activate bookmarks on single-click
- Improve some focus handling issues
- Don't select filename extensions in the save dialog
* Bugs fixed:
499835 No "object:state-changed:selected" event when [un]selecti...
516024 filechooser critical warning when loading thumbnail pixbufs
144269 GtkHPaned flickers and leaves widgets in child panels unr...
419737 File save dialog deletes/empties filename when changing d...
148828 Side Pane in File Selector requires double-click
455627 Keyboard input gets confused with modal windows
473786 Needs keyboard navigation for gtkstatusicon
494515 GdkPixbufLoader does not always return an image at the si...
499940 Focus shouldn't go to file list when selecting a bookmark
503569 Leak in GtkTreeViewColumn
505928 Right-clicking taskbar entry for minimized window causes ...
511111 [Win32] Modal dialogs should affect the entire applicatio...
511987 filter is not working
514621 Crash when changing model while handling GtkTreeSelection...
514643 Hiding a modal window still causes its parents to be blocked
514789 Clicking a menu in a maximized windowcauses it to restore...
515047 check for all return/space keys consistently
515667 gtk_file_chooser_get_current_folder_uri does not check fo...
362516 File extensions should not be selected by default
* Updated translations:
Greek (el)
Spanish (es)
Galician (gl)
Hebrew (he)
Brazilian Portugese (pt_BR)
Slovak (sk)
Swedish (sv)
Overview of Changes from GTK+ 2.12.5 to 2.12.6
==============================================
* GtkBuilder supports accessibility properties and
relations now
* Bugs fixed:
506769 GtkCellRendererCombo fails for 2.12.3 under Windows
477175 gtk_tree_view_set_cursor doesn't scroll the treeview corr...
496645 dubious refcounting in GtkBuilder
496651 gtkbuilder should refcount everything
504611 A small leak fix
507751 Conditional jump or move depends on uninitialised value(s)
508516 Re-showing a hidden window results in wrong window position
509153 Menu items don't get translated when using GtkBuilder
512375 draw_page_cb leaks the pango context
454653 GtkBuilder accessibility support
* Updated translations:
Belarusian (be)
Czech (cs)
Estonian (et)
French (fr)
Sinhala (si)
Overview of Changes from GTK+ 2.12.3 to 2.12.5
==============================================
* Bugs fixed:
494667 gdkpixloader jpeg loader problems with some files
496546 Tooltips may crashe because a window is destroyed
503824 gtk_paned_find_neighbours aborts with assertion failure
388321 gtk_notebook_remove_tab_label
503190 Doesn't build with directfb >= 1.0
491847 gtk-builder-convert --root option doesn't work for GtkWin...
492977 Setup autorelease pool automatically in each mainloop ite...
499951 GtkAssistant remove_page may leave current_page as a dang...
502250 Leak in gtkfilechooserdefault.c:shortcuts_reload_icons()
503569 Leak in GtkTreeViewColumn
504753 Destroyed subviews are not removed from the view hierarchy
504804 Typo in TEST_EXPAND_ROW signal
504984 Problems with hiding/showing transient windows
505708 compatibility macros for signals has wrong type.
506107 mem leak in print dialogue
502850 gtk-builder-convert program not found
504749 gtk-builder-convert and GtkMenu
* Updated translations:
Greek (el)
Spanish (es)
Estonian (et)
Basque (eu)
Irish (ga)
Swedish (sv)
Overview of Changes from GTK+ 2.12.2 to 2.12.3
==============================================
* Win32:
- Respect viewable drive restrictions
* Bugs fixed:
499868 fix for crash during DnD on Quartz
500804 null pointer dereference in quartz drawing function
144269 GtkHPaned flickers and leaves widgets in child panels unr...
495124 Valgrind error with windows of type GTK_WINDOW_POPUP
501583 Root window not fully initialized
* Updated translations:
Estonian (et)
French (fr)
Irish (ga)
Overview of Changes from GTK+ 2.12.1 to 2.12.2
==============================================
* Bugs fixed:
494776 text file with html causes lockeup
482531 firefox crashed on print preview [@IA__gdk_window_get_top...
488918 gtkbuilder cannot resolve type in turkish locale
347585 segv in gtk_text_iter_ends_line with gcc 4.1.1 -finline-f...
479463 gtk-builder-convert fails to convert glade files generate...
164537 Non-modal transient dialogs should iconify with parent
371036 Win32: Raise modal children dialogs when clicking parent ...
388321 gtk_notebook_remove_tab_label
405178 GTK_DIALOG_MODAL not working with gtk_message_dialog_new
461222 gtk_builder_get_type_from_name() docs could be better
467711 tests/testrichtext.c fails to build on HP-UX 10.20
467722 Invalid bit-field types for AIX 4.3.3 compiler
468793 GtkBuilder ignores <signal> after <child>
473813 Events on the title bar "punch through" sometimes
476827 Wrong button order in GtkAssistant
485662 [gutsy] getting "Error Printing: Too many failed attempts...
486369 Copy and Paste doesn't work
486420 Allow empty property node values
487954 Buttons with relief set to 'none' should draw a focus rect
488017 gdkevents-win32.c: variable is declared at middle of block
488051 Bad cursor movement when tags override visibility
489370 Stacking order for child windows not implemented
491207 gtk_text_buffer_delete_interactive() robustness against c...
492117 ../gdk/quartz/GdkQuartzWindow.h:32: error: ISO C++ forbid...
492209 The expander demo moves the whole window on the first click
493404 Shift-tab not working in leopard
495574 cups-config hardcoded in configure check
495769 useless (i think) delayed_properties hashtable
496689 GtkAboutDialog "name" property deprecation not explained ...
497164 use text_buffer_get_insert everywhere
499703 Text color of the calendar widget wrong for dark background
107398 One too many frame updates for GIF animations?
463865 gtk/gdk_window_fullscreen always uses the primary monitor
489782 Two different default values for toolbar-style property i...
490624 Can we have gtk-error-bell set to FALSE by default on Win...
496734 No constant gtk_check_version return value
496795 GtkTreeStore in a GtkBuilder XML file cannot set column t...
498922 show-expanders code has impossible test
467490 allow multi-file DnD with gtk-osx/quartz
497102 Small patch for textview internals
* Updated translations:
- Arabic (ar)
- Belarusian Latin (be@latin)
- Estonian (et)
- Finnish (fi)
- Irish (ga)
- Norwegian bokmål (nb)
- Slovenian (sl)
Overview of Changes from GTK+ 2.12.0 to 2.12.1
==============================================

2
README
View File

@@ -1,7 +1,7 @@
General Information
===================
This is GTK+ version 2.12.1. GTK+ is a multi-platform toolkit for
This is GTK+ version 2.12.8. 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.

View File

@@ -88,7 +88,7 @@
#define ENABLE_NLS 1
/* Define the location where the catalogs will be installed */
#define GTK_LOCALEDIR "UNUSED"
#define GTK_LOCALEDIR "UNUSED/share/locale"
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#define HAVE_BIND_TEXTDOMAIN_CODESET 1

View File

@@ -12,10 +12,10 @@ AC_PREREQ(2.54)
m4_define([gtk_major_version], [2])
m4_define([gtk_minor_version], [12])
m4_define([gtk_micro_version], [2])
m4_define([gtk_micro_version], [8])
m4_define([gtk_version],
[gtk_major_version.gtk_minor_version.gtk_micro_version])
m4_define([gtk_interface_age], [2])
m4_define([gtk_interface_age], [8])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
# This is the X.Y used in -lgtk-FOO-X.Y
@@ -477,7 +477,7 @@ fi
# sure that both po/ and po-properties/ have .po files that correspond
# to your language. If you only add one to po/, the build will break
# in po-properties/.
ALL_LINGUAS="af am ang ar as az az_IR be be@latin bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id io is it ja ka ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW"
ALL_LINGUAS="af am ang ar as az az_IR be be@latin bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id io is it ja ka kn ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw si sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW"
AM_GLIB_GNU_GETTEXT
LIBS="$LIBS $INTLLIBS"
AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
@@ -1553,10 +1553,10 @@ AC_SUBST(GTK_XIM_FLAGS)
AC_PATH_PROG(CUPS_CONFIG, cups-config, no)
if test "x$CUPS_CONFIG" != "xno"; then
CUPS_CFLAGS=`cups-config --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
CUPS_LIBS=`cups-config --libs`
CUPS_CFLAGS=`$CUPS_CONFIG --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
CUPS_LIBS=`$CUPS_CONFIG --libs`
CUPS_API_VERSION=`cups-config --api-version`
CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'`
CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`

View File

@@ -1,3 +1,31 @@
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* === Released 2.12.8 ===
2008-01-29 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.7 ===
2008-01-28 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.6 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.5 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.4 ===
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.3 ===
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.2 ===
2007-10-16 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.1 ===

View File

@@ -1,3 +1,42 @@
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* === Released 2.12.8 ===
2008-01-29 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.7 ===
2008-01-28 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.6 ===
2008-01-24 Johan Dahlin <johan@gnome.org>
* gtk/tmpl/gtkwidget.sgml:
Add documentation for <accessible> buildable tag.
2008-01-14 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.5 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.4 ===
2007-12-30 Johannes Schmid <jhs@gnome.org>
* gtk/tmpl/gtknotebook.sgml:
Fix method names (gtk_notebook_popup_enable vs.
gtk_notebook_enable_popup)
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.3 ===
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.2 ===
2007-11-19 Matthias Clasen <mclasen@redhat.com>
* gtk/tmpl/gtkaboutdialog.sgml: Add some hints about

View File

@@ -61,7 +61,8 @@ a GtkBuilder UI definition.
@construct_child: Constructs a child of a buildable that has been
specified as "constructor" in the UI definition. #GtkUIManager implements
this to reference to a widget created in a &lt;ui&gt; tag which is outside
of the normal GtkBuilder UI definition hierarchy.
of the normal GtkBuilder UI definition hierarchy. A reference to the
constructed object is returned and becomes owned by the caller.
@custom_tag_start: Implement this if the buildable needs to parse
content below &lt;child&gt;. To handle an element, the implementation
must fill in the @parser structure and @user_data and return %TRUE.

View File

@@ -16,7 +16,7 @@ things, you can choose on which edge the tabs appear
tabs to fit the noteobook should be made bigger or scrolling
arrows added (see gtk_notebook_set_scrollable), and whether there
will be a popup menu allowing the users to switch pages.
(see gtk_notebook_enable_popup(), gtk_noteobook_disable_popup())
(see gtk_notebook_popup_enable(), gtk_noteobook_popup_disable())
</para>
<refsect2 id="GtkNotebook-BUILDER-UI">

View File

@@ -134,6 +134,8 @@ Tells about the state of the object.
@GTK_IN_DESTRUCTION: the object is currently being destroyed. This is used
internally by GTK+ to prevent reinvokations during destruction.
@GTK_FLOATING:
@GTK_RESERVED_1:
@GTK_RESERVED_2: reserved for future use
<!-- ##### MACRO GTK_OBJECT_FLAGS ##### -->

View File

@@ -52,6 +52,8 @@ accessed through the function described below.
@orientation:
@style:
@icon_size:
@tooltips:
@_tooltips:
<!-- ##### SIGNAL GtkToolbar::focus-home-or-end ##### -->
<para>

View File

@@ -37,6 +37,31 @@ modifiers and signal and allows to specify accelerators.
</object>
]]></programlisting>
</example>
In addition to accelerators, <structname>GtkWidget</structname> also support a
custom &lt;accessible&gt; element, which supports actions and relations.
Properties on the accessible implementation of an object can be set by accessing the
internal child "accessible" of a <structname>GtkWidget</structname>.
<example>
<title>A UI definition fragment specifying an accessible</title>
<programlisting><![CDATA[
<object class="GtkButton" id="label1"/>
<property name="label">I am a Label for a Button</property>
</object>
<object class="GtkButton" id="button1">
<accessibility>
<action action_name="click" description="Click the button."/>
<relation target="label1" type="labelled-by"/>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-button1">
<property name="AtkObject::name">Clickable Button</property>
</object>
</child>
</object>
]]></programlisting>
</example>
</refsect2>
<!-- ##### SECTION See_Also ##### -->

View File

@@ -1,3 +1,48 @@
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* === Released 2.12.8 ===
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* gdk-pixbuf-io.c (at_scale_size_prepared_cb): Don't let
the width or height go below 1. (#516024, Christian Persch)
2008-02-10 Matthias Clasen <mclasne@redhat.com>
* gdk-pixbuf-scaled-anim.c: Try harder to return pixbufs
of the requested size. (#494515, Mike Morrison)
2008-01-29 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.7 ===
2008-01-28 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.6 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.5 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.4 ===
2007-12-09 Matthias Clasen <mclasen@redhat.com>
Merge from trunk:
* io-jpeg.c: Fix the spinguard logic for big buffers.
(#494667, Ed Catmur)
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.3 ===
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.2 ===
2007-11-10 Matthias Clasen <mclasen@redhat.com>
* io-jpeg.c: Avoid unaligned accesses that cause

View File

@@ -975,6 +975,9 @@ size_prepared_cb (GdkPixbufLoader *loader,
height = info->height;
}
width = MAX (width, 1);
height = MAX (height, 1);
gdk_pixbuf_loader_set_size (loader, width, height);
}

View File

@@ -139,8 +139,8 @@ get_scaled_pixbuf (GdkPixbufScaledAnim *scaled,
/* Get a new scaled pixbuf */
scaled->current = gdk_pixbuf_scale_simple (pixbuf,
(int) (gdk_pixbuf_get_width (pixbuf) * scaled->xscale),
(int) (gdk_pixbuf_get_height (pixbuf) * scaled->yscale),
(int) (gdk_pixbuf_get_width (pixbuf) * scaled->xscale + .5),
(int) (gdk_pixbuf_get_height (pixbuf) * scaled->yscale + .5),
GDK_INTERP_BILINEAR);
/* Copy the original pixbuf options to the scaled pixbuf */
@@ -170,9 +170,9 @@ get_size (GdkPixbufAnimation *anim,
GDK_PIXBUF_ANIMATION_GET_CLASS (scaled->anim)->get_size (scaled->anim, width, height);
if (width)
*width = (int)(*width * scaled->xscale);
*width = (int)(*width * scaled->xscale + .5);
if (height)
*height = (int)(*height * scaled->yscale);
*height = (int)(*height * scaled->yscale + .5);
}
static GdkPixbufAnimationIter *

View File

@@ -812,7 +812,7 @@ gdk_pixbuf__jpeg_image_load_increment (gpointer data,
struct jpeg_decompress_struct *cinfo;
my_src_ptr src;
guint num_left, num_copy;
guint last_bytes_left;
guint last_num_left, last_bytes_left;
guint spinguard;
gboolean first;
const guchar *bufhd;
@@ -853,6 +853,7 @@ gdk_pixbuf__jpeg_image_load_increment (gpointer data,
if (num_left == 0)
return TRUE;
last_num_left = num_left;
last_bytes_left = 0;
spinguard = 0;
first = TRUE;
@@ -880,10 +881,13 @@ gdk_pixbuf__jpeg_image_load_increment (gpointer data,
if (first) {
last_bytes_left = src->pub.bytes_in_buffer;
first = FALSE;
} else if (src->pub.bytes_in_buffer == last_bytes_left)
} else if (src->pub.bytes_in_buffer == last_bytes_left
&& num_left == last_num_left) {
spinguard++;
else
} else {
last_bytes_left = src->pub.bytes_in_buffer;
last_num_left = num_left;
}
/* should not go through twice and not pull bytes out of buf */
if (spinguard > 2)

View File

@@ -39,6 +39,13 @@
#include "x-cursors.xbm"
#include <directfb_version.h>
#if DIRECTFB_MAJOR_VERSION < 1
#define u32 __u32
#define u8 __u8
#endif
static struct {
const guchar *bits;
int width, height, hotx, hoty;
@@ -228,7 +235,7 @@ gdk_cursor_new_for_display (GdkDisplay *display,GdkCursorType cursor_type)
}
else
{
__u32 *dst;
u32 *dst;
int pitch;
ret = temp->Lock (temp, DSLF_WRITE, (void**)&dst, &pitch);
@@ -266,13 +273,13 @@ gdk_cursor_new_for_display (GdkDisplay *display,GdkCursorType cursor_type)
gint bit = x-mx + (y-my) * p;
gint mbit = x + y * mp;
__u32 color = (x-mx < 0 || y-my < 0 ||
u32 color = (x-mx < 0 || y-my < 0 ||
x-mx >= stock_cursors[cursor_type].width ||
y-my >= stock_cursors[cursor_type].height)
? 0x00FFFFFF : (src[bit/8] & (1 << bit%8) ? 0 : 0x00FFFFFF);
__u8 a = color ? 0xE0 : 0xFF;
__u32 alpha = mask[mbit/8] & (1 << mbit%8) ? (a << 24) : 0;
u8 a = color ? 0xE0 : 0xFF;
u32 alpha = mask[mbit/8] & (1 << mbit%8) ? (a << 24) : 0;
dst[x + y*pitch] = alpha | color;
}

View File

@@ -476,7 +476,7 @@ gdk_directfb_draw_arc (GdkDrawable *drawable,
gint angle1,
gint angle2)
{
WARN_UNIMPLEMENTED (G_GNUC_FUNCTION);
WARN_UNIMPLEMENTED (G_STRLOC);
}
static void
@@ -560,7 +560,7 @@ gdk_directfb_draw_text (GdkDrawable *drawable,
const gchar *text,
gint text_length)
{
WARN_UNIMPLEMENTED (G_GNUC_FUNCTION);
WARN_UNIMPLEMENTED (G_STRLOC);
}
static void
@@ -572,7 +572,7 @@ gdk_directfb_draw_text_wc (GdkDrawable *drawable,
const GdkWChar *text,
gint text_length)
{
WARN_UNIMPLEMENTED (G_GNUC_FUNCTION);
WARN_UNIMPLEMENTED (G_STRLOC);
}
static void

View File

@@ -151,7 +151,7 @@ gdk_image_new_bitmap (GdkVisual *visual,
GDK_NOTE (MISC, g_print ("gdk_image_new_bitmap: %dx%d\n", w, h));
g_message ("not fully implemented %s", G_GNUC_FUNCTION);
g_message ("not fully implemented %s", G_STRLOC);
image->bpl = (w + 7) / 8;
image->mem = g_malloc (image->bpl * h);
@@ -209,7 +209,7 @@ _gdk_image_new_for_depth (GdkScreen *screen,
format = DSPF_ARGB;
break;
default:
g_message ("unimplemented %s for depth %d", G_GNUC_FUNCTION, depth);
g_message ("unimplemented %s for depth %d", G_STRLOC, depth);
return NULL;
}

View File

@@ -228,7 +228,7 @@ gboolean
gdk_device_set_mode (GdkDevice *device,
GdkInputMode mode)
{
g_message ("unimplemented %s", G_GNUC_FUNCTION);
g_message ("unimplemented %s", G_STRLOC);
return FALSE;
}
@@ -303,7 +303,7 @@ gdk_input_set_extension_events (GdkWindow *window,
gint mask,
GdkExtensionMode mode)
{
g_message ("unimplemented %s", G_GNUC_FUNCTION);
g_message ("unimplemented %s", G_STRLOC);
}
GList *

View File

@@ -172,7 +172,7 @@ gdk_pixmap_new (GdkDrawable *drawable,
format = DSPF_RGB32;
break;
default:
g_message ("unimplemented %s for depth %d", G_GNUC_FUNCTION, depth);
g_message ("unimplemented %s for depth %d", G_STRLOC, depth);
return NULL;
}
}

View File

@@ -2411,7 +2411,7 @@ gdk_window_set_functions (GdkWindow *window,
return;
/* N/A */
g_message("unimplemented %s", G_GNUC_FUNCTION);
g_message("unimplemented %s", G_STRLOC);
}
void
@@ -2444,7 +2444,7 @@ gdk_window_set_static_gravities (GdkWindow *window,
return FALSE;
/* N/A */
g_message("unimplemented %s", G_GNUC_FUNCTION);
g_message("unimplemented %s", G_STRLOC);
return FALSE;
}
@@ -2462,7 +2462,7 @@ gdk_window_begin_resize_drag (GdkWindow *window,
if (GDK_WINDOW_DESTROYED (window))
return;
g_message("unimplemented %s", G_GNUC_FUNCTION);
g_message("unimplemented %s", G_STRLOC);
}
void
@@ -2477,7 +2477,7 @@ gdk_window_begin_move_drag (GdkWindow *window,
if (GDK_WINDOW_DESTROYED (window))
return;
g_message("unimplemented %s", G_GNUC_FUNCTION);
g_message("unimplemented %s", G_STRLOC);
}
/**

View File

@@ -64,6 +64,15 @@
if (!(private->event_mask & GDK_EXPOSURE_MASK))
return;
/* For some reason, we occasionally get draw requests for zero sized rects
* at 0,0, just ignore those.
*/
if (rect.origin.x == 0 && rect.origin.y == 0 &&
rect.size.width == 0 && rect.size.height == 0)
{
return;
}
GDK_QUARTZ_ALLOC_POOL;
[self getRectsBeingDrawn:&drawn_rects count:&count];
@@ -132,7 +141,7 @@
* NSPointInRect ([[self window] convertScreenToBase:[NSEvent mouseLocation]], rect)
*/
rect = NSMakeRect (0, 0, impl->width, impl->height);
rect = [self bounds];
trackingRect = [self addTrackingRect:rect
owner:self
userData:nil

View File

@@ -136,6 +136,14 @@
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
GdkEvent *event;
/* Ignore new position during showing/hiding the window, otherwise we
* would get the off-screen position that is used for hidden windows to
* get reliable MouseEntered events when showing them again. See comments
* in show() and hide().
*/
if (inShowOrHide)
return;
private->x = content_rect.origin.x;
private->y = _gdk_quartz_window_get_inverted_screen_y (content_rect.origin.y + content_rect.size.height);
@@ -257,6 +265,63 @@
return YES;
}
- (void)showAndMakeKey:(BOOL)makeKey
{
GdkWindow *window = [[self contentView] gdkWindow];
GdkWindowObject *private = (GdkWindowObject *)window;
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
inShowOrHide = YES;
if (!GDK_WINDOW_IS_MAPPED (window))
{
NSRect content_rect;
NSRect frame_rect;
/* We move the window in place if it's not mapped. See comment in
* hide().
*/
content_rect =
NSMakeRect (private->x,
_gdk_quartz_window_get_inverted_screen_y (private->y) - impl->height,
impl->width, impl->height);
frame_rect = [impl->toplevel frameRectForContentRect:content_rect];
[impl->toplevel setFrame:frame_rect display:NO];
}
if (makeKey)
[impl->toplevel makeKeyAndOrderFront:impl->toplevel];
else
[impl->toplevel orderFront:nil];
inShowOrHide = NO;
}
- (void)hide
{
GdkWindow *window = [[self contentView] gdkWindow];
GdkWindowObject *private = (GdkWindowObject *)window;
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
NSRect content_rect;
NSRect frame_rect;
inShowOrHide = YES;
/* We move the window away when hiding, to make it possible to move it in
* place when showing to get reliable tracking rect events (which are used
* to generate crossing events). We have to do this, probably a bug in
* quartz.
*/
content_rect = NSMakeRect (-500 - impl->width, -500 - impl->height,
impl->width, impl->height);
frame_rect = [impl->toplevel frameRectForContentRect:content_rect];
[impl->toplevel setFrame:frame_rect display:NO];
[impl->toplevel orderOut:nil];
inShowOrHide = NO;
}
- (BOOL)trackManualMove
{
NSPoint currentLocation;
@@ -301,9 +366,11 @@
float dx, dy;
NSSize min_size;
if (!inManualResize)
if (!inManualResize || inTrackManualResize)
return NO;
inTrackManualResize = YES;
currentLocation = [self convertBaseToScreen:[self mouseLocationOutsideOfEventStream]];
currentLocation.x -= initialResizeFrame.origin.x;
currentLocation.y -= initialResizeFrame.origin.y;
@@ -332,6 +399,12 @@
[self setFrame:newFrame display:YES];
/* Let the resizing be handled by GTK+. */
if (g_main_context_pending (NULL))
g_main_context_iteration (NULL, FALSE);
inTrackManualResize = NO;
return YES;
}

View File

@@ -23,11 +23,13 @@
#include <glib.h>
@interface GdkQuartzWindow : NSWindow {
BOOL inMove;
BOOL inMove;
BOOL inShowOrHide;
/* Manually triggered move/resize (not by the window manager) */
BOOL inManualMove;
BOOL inManualResize;
BOOL inTrackManualResize;
NSPoint initialMoveLocation;
NSPoint initialResizeLocation;
NSRect initialResizeFrame;
@@ -38,6 +40,8 @@
-(BOOL)trackManualMove;
-(void)beginManualResize;
-(BOOL)trackManualResize;
-(void)showAndMakeKey:(BOOL)makeKey;
-(void)hide;
@end

View File

@@ -687,14 +687,8 @@ gdk_quartz_drawable_get_context (GdkDrawable *drawable,
*/
if (window_impl->in_paint_rect_count == 0)
{
window_impl->pool = [[NSAutoreleasePool alloc] init];
if (![window_impl->view lockFocusIfCanDraw])
{
[window_impl->pool release];
window_impl->pool = NULL;
return NULL;
}
return NULL;
}
cg_context = [[NSGraphicsContext currentContext] graphicsPort];
@@ -767,15 +761,7 @@ gdk_quartz_drawable_release_context (GdkDrawable *drawable,
/* See comment in gdk_quartz_drawable_get_context(). */
if (window_impl->in_paint_rect_count == 0)
{
[window_impl->view unlockFocus];
if (window_impl->pool)
{
[window_impl->pool release];
window_impl->pool = NULL;
}
}
[window_impl->view unlockFocus];
}
else if (GDK_IS_PIXMAP_IMPL_QUARTZ (drawable))
CGContextRelease (cg_context);

View File

@@ -23,6 +23,30 @@ static GPollFD *pipe_pollfd;
static guint n_pollfds;
static CFRunLoopSourceRef select_main_thread_source;
static CFRunLoopRef main_thread_run_loop;
static NSAutoreleasePool *autorelease_pool;
gboolean
_gdk_quartz_event_loop_check_pending (void)
{
return current_event != NULL;
}
NSEvent*
_gdk_quartz_event_loop_get_pending (void)
{
NSEvent *event;
event = current_event;
current_event = NULL;
return event;
}
void
_gdk_quartz_event_loop_release_event (NSEvent *event)
{
[event release];
}
static gboolean
gdk_event_prepare (GSource *source,
@@ -30,9 +54,9 @@ gdk_event_prepare (GSource *source,
{
NSEvent *event;
gboolean retval;
GDK_QUARTZ_ALLOC_POOL;
GDK_THREADS_ENTER ();
*timeout = -1;
event = [NSApp nextEventMatchingMask: NSAnyEventMask
@@ -43,7 +67,7 @@ gdk_event_prepare (GSource *source,
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
event != NULL);
GDK_QUARTZ_RELEASE_POOL;
GDK_THREADS_LEAVE ();
return retval;
}
@@ -51,13 +75,23 @@ gdk_event_prepare (GSource *source,
static gboolean
gdk_event_check (GSource *source)
{
gboolean retval;
GDK_THREADS_ENTER ();
if (autorelease_pool)
[autorelease_pool release];
autorelease_pool = [[NSAutoreleasePool alloc] init];
if (_gdk_event_queue_find_first (_gdk_display) != NULL ||
current_event)
return TRUE;
_gdk_quartz_event_loop_check_pending ())
retval = TRUE;
else
retval = FALSE;
/* FIXME: We should maybe try to fetch an event again here */
GDK_THREADS_LEAVE ();
return FALSE;
return retval;
}
static gboolean
@@ -67,7 +101,7 @@ gdk_event_dispatch (GSource *source,
{
GdkEvent *event;
GDK_QUARTZ_ALLOC_POOL;
GDK_THREADS_ENTER ();
_gdk_events_queue (_gdk_display);
@@ -81,7 +115,7 @@ gdk_event_dispatch (GSource *source,
gdk_event_free (event);
}
GDK_QUARTZ_RELEASE_POOL;
GDK_THREADS_LEAVE ();
return TRUE;
}
@@ -164,8 +198,6 @@ poll_func (GPollFD *ufds, guint nfds, gint timeout_)
int n_active = 0;
int i;
GDK_QUARTZ_ALLOC_POOL;
if (nfds > 1)
{
if (!select_thread) {
@@ -264,18 +296,11 @@ poll_func (GPollFD *ufds, guint nfds, gint timeout_)
{
ufds[0].revents = G_IO_IN;
/* FIXME: We can't assert here, but we might need to have a
* queue for events instead.
*/
/*g_assert (current_event == NULL);*/
current_event = [event retain];
n_active ++;
}
GDK_QUARTZ_RELEASE_POOL;
return n_active;
}
@@ -295,19 +320,7 @@ _gdk_quartz_event_loop_init (void)
old_poll_func = g_main_context_get_poll_func (NULL);
g_main_context_set_poll_func (NULL, poll_func);
}
NSEvent *
_gdk_quartz_event_loop_get_current (void)
{
return current_event;
}
void
_gdk_quartz_event_loop_release_current (void)
{
[current_event release];
current_event = NULL;
autorelease_pool = [[NSAutoreleasePool alloc] init];
}

View File

@@ -130,7 +130,7 @@ gboolean
gdk_events_pending (void)
{
return (_gdk_event_queue_find_first (_gdk_display) ||
(_gdk_quartz_event_loop_get_current () != NULL));
(_gdk_quartz_event_loop_check_pending ()));
}
GdkEvent*
@@ -1172,7 +1172,8 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent)
/* If there is a window other than the root window at this
* position, it means we didn't exit to the root window and we
* ignore the event.
* ignore the event. (Note that we can get NULL here when swithing
* spaces for example.)
*
* FIXME: This is not enough, it doesn't catch the case where
* we leave a GDK window to a non-GDK window that has GDK
@@ -1180,9 +1181,12 @@ synthesize_crossing_events_for_ns_event (NSEvent *nsevent)
*/
mouse_window = _gdk_quartz_window_find_child (_gdk_root, x, y);
if (gdk_window_get_toplevel (mouse_window) ==
if (!mouse_window ||
gdk_window_get_toplevel (mouse_window) ==
gdk_window_get_toplevel (current_mouse_window))
mouse_window = _gdk_root;
{
mouse_window = _gdk_root;
}
if (mouse_window == _gdk_root)
synthesize_crossing_events (_gdk_root, GDK_CROSSING_NORMAL, nsevent, x, y);
@@ -1777,6 +1781,9 @@ gdk_event_translate (NSEvent *nsevent)
event = create_scroll_event (window, nsevent, direction);
append_event (event);
dy--;
/* Ignore the delta for now, things get too slow when the events queue up. */
break;
}
/* Now do x events */
@@ -1793,6 +1800,9 @@ gdk_event_translate (NSEvent *nsevent)
event = create_scroll_event (window, nsevent, direction);
append_event (event);
dx--;
/* Ignore the delta for now, things get too slow when the events queue up. */
break;
}
}
@@ -1825,14 +1835,15 @@ gdk_event_translate (NSEvent *nsevent)
void
_gdk_events_queue (GdkDisplay *display)
{
NSEvent *current_event = _gdk_quartz_event_loop_get_current ();
NSEvent *event;
if (current_event)
event = _gdk_quartz_event_loop_get_pending ();
if (event)
{
if (!gdk_event_translate (current_event))
[NSApp sendEvent:current_event];
_gdk_quartz_event_loop_release_current ();
if (!gdk_event_translate (event))
[NSApp sendEvent:event];
_gdk_quartz_event_loop_release_event (event);
}
}

View File

@@ -158,8 +158,9 @@ extern GdkWindow *_gdk_quartz_keyboard_grab_window;
extern GdkWindow *_gdk_quartz_pointer_grab_window;
/* Event loop */
NSEvent * _gdk_quartz_event_loop_get_current (void);
void _gdk_quartz_event_loop_release_current (void);
gboolean _gdk_quartz_event_loop_check_pending (void);
NSEvent * _gdk_quartz_event_loop_get_pending (void);
void _gdk_quartz_event_loop_release_event (NSEvent *event);
/* FIXME: image */
GdkImage *_gdk_quartz_image_copy_to_image (GdkDrawable *drawable,

View File

@@ -209,7 +209,7 @@ gdk_window_impl_quartz_begin_paint_region (GdkPaintable *paintable,
x_offset = y_offset = 0;
window = GDK_WINDOW (drawable_impl->wrapper);
while (window && ((GdkWindowObject *) window)->bg_pixmap == GDK_PARENT_RELATIVE_BG)
while (window && bg_pixmap == GDK_PARENT_RELATIVE_BG)
{
/* If this window should have the same background as the parent,
* fetch the parent. (And if the same goes for the parent, fetch
@@ -218,6 +218,16 @@ gdk_window_impl_quartz_begin_paint_region (GdkPaintable *paintable,
x_offset += ((GdkWindowObject *) window)->x;
y_offset += ((GdkWindowObject *) window)->y;
window = GDK_WINDOW (((GdkWindowObject *) window)->parent);
bg_pixmap = ((GdkWindowObject *) window)->bg_pixmap;
}
if (bg_pixmap == NULL || bg_pixmap == GDK_NO_BG || bg_pixmap == GDK_PARENT_RELATIVE_BG)
{
/* Parent relative background but the parent doesn't have a
* pixmap.
*/
g_free (rects);
return;
}
/* Note: There should be a CG API to draw tiled images, we might
@@ -824,6 +834,7 @@ _gdk_windowing_window_init (void)
{
GdkWindowObject *private;
GdkWindowImplQuartz *impl;
GdkDrawableImplQuartz *drawable_impl;
NSRect rect;
g_assert (_gdk_root == NULL);
@@ -841,6 +852,12 @@ _gdk_windowing_window_init (void)
private->state = 0; /* We don't want GDK_WINDOW_STATE_WITHDRAWN here */
private->window_type = GDK_WINDOW_ROOT;
private->depth = 24;
drawable_impl = GDK_DRAWABLE_IMPL_QUARTZ (private->impl);
drawable_impl->wrapper = GDK_DRAWABLE (private);
drawable_impl->colormap = gdk_screen_get_system_colormap (_gdk_screen);
g_object_ref (drawable_impl->colormap);
}
void
@@ -851,6 +868,7 @@ _gdk_windowing_window_destroy (GdkWindow *window,
GdkWindowObject *private;
GdkWindowImplQuartz *impl;
GdkWindowObject *parent;
GdkWindow *mouse_window;
private = GDK_WINDOW_OBJECT (window);
impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
@@ -878,24 +896,21 @@ _gdk_windowing_window_destroy (GdkWindow *window,
if (window == _gdk_quartz_keyboard_grab_window)
gdk_keyboard_ungrab (0);
_gdk_quartz_drawable_finish (GDK_DRAWABLE (impl));
mouse_window = _gdk_quartz_events_get_mouse_window (FALSE);
if (window == mouse_window ||
_gdk_quartz_window_is_ancestor (window, mouse_window))
_gdk_quartz_events_update_mouse_window (_gdk_root);
if (!recursing && !foreign_destroy)
{
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
GdkWindow *mouse_window;
mouse_window = _gdk_quartz_events_get_mouse_window (FALSE);
if (window == mouse_window ||
_gdk_quartz_window_is_ancestor (window, mouse_window))
_gdk_quartz_events_update_mouse_window (_gdk_root);
GDK_QUARTZ_ALLOC_POOL;
_gdk_quartz_drawable_finish (GDK_DRAWABLE (impl));
if (impl->toplevel)
[impl->toplevel close];
else if (impl->view)
[impl->view release];
[impl->view removeFromSuperview];
GDK_QUARTZ_RELEASE_POOL;
}
@@ -947,30 +962,15 @@ show_window_internal (GdkWindow *window,
if (impl->toplevel)
{
gboolean make_key;
/* Move the window into place, to guarantee that we get the
* initial MouseEntered event.
*/
if (!GDK_WINDOW_IS_MAPPED (window))
{
NSRect content_rect;
NSRect frame_rect;
make_key = (private->accept_focus && focus_on_map && raise &&
private->window_type != GDK_WINDOW_TEMP);
content_rect =
NSMakeRect (private->x,
_gdk_quartz_window_get_inverted_screen_y (private->y) - impl->height,
impl->width, impl->height);
frame_rect = [impl->toplevel frameRectForContentRect:content_rect];
[impl->toplevel setFrame:frame_rect display:NO];
}
/* We should make the window not raise for !raise, but at least
* this will keep it from getting focused in that case.
*/
if (private->accept_focus && focus_on_map && raise &&
private->window_type != GDK_WINDOW_TEMP)
[impl->toplevel makeKeyAndOrderFront:impl->toplevel];
else
[impl->toplevel orderFront:nil];
[(GdkQuartzWindow*)impl->toplevel showAndMakeKey:make_key];
}
else
{
@@ -1095,16 +1095,7 @@ gdk_window_hide (GdkWindow *window)
if (impl->transient_for)
_gdk_quartz_window_detach_from_parent (window);
/* Big hack in gdk_window_new() and show_window_internal()
* continued. Move the window away when hidden so that we can
* move it back before showing it.
*/
content_rect = NSMakeRect (-500 - impl->width, -500 - impl->height,
impl->width, impl->height);
frame_rect = [impl->toplevel frameRectForContentRect:content_rect];
[impl->toplevel setFrame:frame_rect display:NO];
[impl->toplevel orderOut:nil];
[(GdkQuartzWindow*)impl->toplevel hide];
}
else if (impl->view)
{
@@ -1145,10 +1136,10 @@ move_resize_window_internal (GdkWindow *window,
impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
if ((x == private->x) &&
(y == private->y) &&
(width == impl->width) &&
(height == impl->height))
if ((x == -1 || (x == private->x)) &&
(y == -1 || (y == private->y)) &&
(width == -1 || (width == impl->width)) &&
(height == -1 || (height == impl->height)))
{
return;
}
@@ -1199,12 +1190,19 @@ move_resize_window_internal (GdkWindow *window,
NSRect content_rect;
NSRect frame_rect;
content_rect = NSMakeRect (private->x,
_gdk_quartz_window_get_inverted_screen_y (private->y + impl->height),
impl->width, impl->height);
frame_rect = [impl->toplevel frameRectForContentRect:content_rect];
[impl->toplevel setFrame:frame_rect display:YES];
/* We don't update the NSWindow while unmapped, since we move windows
* off-screen when hiding in order for MouseEntered to be triggered
* reliably when showing windows and they appear under the mouse.
*/
if (GDK_WINDOW_IS_MAPPED (window))
{
content_rect = NSMakeRect (private->x,
_gdk_quartz_window_get_inverted_screen_y (private->y + impl->height),
impl->width, impl->height);
frame_rect = [impl->toplevel frameRectForContentRect:content_rect];
[impl->toplevel setFrame:frame_rect display:YES];
}
}
else
{
@@ -2867,9 +2865,6 @@ gdk_window_configure_finished (GdkWindow *window)
void
gdk_window_destroy_notify (GdkWindow *window)
{
/* FIXME: Implement. We should call this from -[GdkQuartzWindow dealloc] or
* -[GdkQuartzView dealloc], although I suspect that currently they leak
* anyway. */
}
void

View File

@@ -54,11 +54,6 @@ struct _GdkWindowImplQuartz
GdkWindowTypeHint type_hint;
/* This is the autorelease pool which is retained
* while the context is being held
*/
NSAutoreleasePool *pool;
NSCursor *nscursor;
GdkRegion *paint_clip_region;

View File

@@ -1,7 +1,7 @@
/* GDK - The GIMP Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
* Copyright (C) 1998-2002 Tor Lillqvist
* Copyright (C) 2007 Cody Russell
* Copyright (C) 2007-2008 Cody Russell
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -94,6 +94,7 @@ static gboolean gdk_event_dispatch (GSource *source,
gpointer user_data);
static void append_event (GdkEvent *event);
static gboolean is_modally_blocked (GdkWindow *window);
/* Private variable declarations
*/
@@ -1266,6 +1267,19 @@ apply_filters (GdkWindow *window,
return result;
}
/*
* On Windows, transient windows will not have their own taskbar entries.
* Because of this, we must hide and restore groups of transients in both
* directions. That is, all transient children must be hidden or restored
* with this window, but if this window's transient owner also has a
* transient owner then this window's transient owner must be hidden/restored
* with this one. And etc, up the chain until we hit an ancestor that has no
* transient owner.
*
* It would be a good idea if applications don't chain transient windows
* together. There's a limit to how much evil GTK can try to shield you
* from.
*/
static void
show_window_recurse (GdkWindow *window, gboolean hide_window)
{
@@ -1288,15 +1302,44 @@ show_window_recurse (GdkWindow *window, gboolean hide_window)
}
}
if (!hide_window)
ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
else
ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE);
if (GDK_WINDOW_IS_MAPPED (window))
{
if (!hide_window)
ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE);
else
ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE);
}
impl->changing_state = FALSE;
}
}
static void
show_window_internal (GdkWindow *window, gboolean hide_window)
{
GdkWindow *tmp_window = NULL;
GdkWindowImplWin32 *tmp_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
if (!tmp_impl->changing_state)
{
/* Find the top-level window in our transient chain. */
while (tmp_impl->transient_owner != NULL)
{
tmp_window = tmp_impl->transient_owner;
tmp_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (tmp_window)->impl);
}
/* If we couldn't find one, use the window provided. */
if (tmp_window == NULL)
{
tmp_window = window;
}
/* Recursively show/hide every window in the chain. */
show_window_recurse (tmp_window, hide_window);
}
}
static gboolean
gdk_window_is_ancestor (GdkWindow *ancestor,
GdkWindow *window)
@@ -1725,6 +1768,13 @@ static gboolean
doesnt_want_key (gint mask,
MSG *msg)
{
GdkWindow *modal_current = _gdk_modal_current ();
GdkWindow *window = (GdkWindow *) gdk_win32_handle_table_lookup ((GdkNativeWindow)msg->hwnd);
gboolean modally_blocked = modal_current != NULL ? gdk_window_get_toplevel (window) != modal_current : FALSE;
if (modally_blocked == TRUE)
return TRUE;
return (((msg->message == WM_KEYUP || msg->message == WM_SYSKEYUP) &&
!(mask & GDK_KEY_RELEASE_MASK)) ||
((msg->message == WM_KEYDOWN || msg->message == WM_SYSKEYDOWN) &&
@@ -2763,12 +2813,27 @@ gdk_event_translate (MSG *msg,
break;
case WM_MOUSEACTIVATE:
if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP
|| !((GdkWindowObject *)window)->accept_focus)
{
*ret_valp = MA_NOACTIVATE;
return_val = TRUE;
}
{
GdkWindow *tmp;
if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP
|| !((GdkWindowObject *)window)->accept_focus)
{
*ret_valp = MA_NOACTIVATE;
return_val = TRUE;
}
tmp = _gdk_modal_current ();
if (tmp != NULL)
{
if (gdk_window_get_toplevel (window) != tmp)
{
*ret_valp = MA_NOACTIVATEANDEAT;
return_val = TRUE;
}
}
}
break;
case WM_KILLFOCUS:
@@ -2872,6 +2937,18 @@ gdk_event_translate (MSG *msg,
return_val = TRUE;
break;
case WM_SYSCOMMAND:
switch (msg->wParam)
{
case SC_MINIMIZE:
case SC_RESTORE:
show_window_internal (window, msg->wParam == SC_MINIMIZE ? TRUE : FALSE);
break;
}
break;
case WM_SIZE:
GDK_NOTE (EVENTS,
g_print (" %s %dx%d",
@@ -2895,6 +2972,7 @@ gdk_event_translate (MSG *msg,
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_WITHDRAWN,
GDK_WINDOW_STATE_ICONIFIED);
show_window_internal (window, TRUE);
}
else if ((msg->wParam == SIZE_RESTORED ||
msg->wParam == SIZE_MAXIMIZED) &&
@@ -2907,16 +2985,25 @@ gdk_event_translate (MSG *msg,
handle_configure_event (msg, window);
if (msg->wParam == SIZE_RESTORED)
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
GDK_WINDOW_STATE_MAXIMIZED |
withdrawn_bit,
0);
{
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
GDK_WINDOW_STATE_MAXIMIZED |
withdrawn_bit,
0);
if (GDK_WINDOW_TYPE (window) != GDK_WINDOW_TEMP && !GDK_WINDOW_IS_MAPPED (window))
{
show_window_internal (window, FALSE);
}
}
else if (msg->wParam == SIZE_MAXIMIZED)
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
withdrawn_bit,
GDK_WINDOW_STATE_MAXIMIZED);
{
gdk_synthesize_window_state (window,
GDK_WINDOW_STATE_ICONIFIED |
withdrawn_bit,
GDK_WINDOW_STATE_MAXIMIZED);
}
if (((GdkWindowObject *) window)->resize_count > 1)
((GdkWindowObject *) window)->resize_count -= 1;
@@ -3172,6 +3259,7 @@ gdk_event_translate (MSG *msg,
break;
}
}
*ret_valp = TRUE;
return_val = TRUE;
GDK_NOTE (EVENTS, g_print (" (handled ASPECT: %s)",
@@ -3305,7 +3393,10 @@ gdk_event_translate (MSG *msg,
append_event (event);
}
else
return_val = TRUE;
{
return_val = TRUE;
}
break;
case WM_RENDERFORMAT:
@@ -3340,7 +3431,9 @@ gdk_event_translate (MSG *msg,
/* Now the clipboard owner should have rendered */
if (!_delayed_rendering_data)
GDK_NOTE (EVENTS, g_print (" (no _delayed_rendering_data?)"));
{
GDK_NOTE (EVENTS, g_print (" (no _delayed_rendering_data?)"));
}
else
{
if (msg->wParam == CF_DIB)
@@ -3354,6 +3447,7 @@ gdk_event_translate (MSG *msg,
break;
}
}
/* The requestor is holding the clipboard, no
* OpenClipboard() is required/possible
*/
@@ -3363,47 +3457,20 @@ gdk_event_translate (MSG *msg,
}
break;
case WM_ACTIVATE: {
/*
* On Windows, transient windows will not have their own taskbar entries.
* Because of this, we must hide and restore groups of transients in both
* directions. That is, all transient children must be hidden or restored
* with this window, but if this window's transient owner also has a
* transient owner then this window's transient owner must be hidden/restored
* with this one. And etc, up the chain until we hit an ancestor that has no
* transient owner.
*
* It would be a good idea if applications don't chain transient windows
* together. There's a limit to how much evil GTK can try to shield you
* from.
*/
GdkWindow *tmp_window = NULL;
GdkWindowImplWin32 *tmp_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
case WM_ACTIVATE:
while (tmp_impl->transient_owner != NULL)
/* We handle mouse clicks for modally-blocked windows under WM_MOUSEACTIVATE,
* but we still need to deal with alt-tab, or with SetActiveWindow() type
* situations. */
if (is_modally_blocked (window) && msg->wParam == WA_ACTIVE)
{
tmp_window = tmp_impl->transient_owner;
tmp_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (tmp_window)->impl);
GdkWindow *modal_current = _gdk_modal_current ();
SetActiveWindow (GDK_WINDOW_HWND (modal_current));
*ret_valp = 0;
return_val = TRUE;
break;
}
if (tmp_window == NULL)
tmp_window = window;
if (LOWORD (msg->wParam) == WA_INACTIVE && HIWORD (msg->wParam))
{
if (!tmp_impl->changing_state)
{
show_window_recurse (tmp_window, TRUE);
}
}
else if (LOWORD (msg->wParam) == WA_ACTIVE && HIWORD (msg->wParam))
{
if (!tmp_impl->changing_state)
{
show_window_recurse (tmp_window, FALSE);
}
}
/* Bring any tablet contexts to the top of the overlap order when
* one of our windows is activated.
* NOTE: It doesn't seem to work well if it is done in WM_ACTIVATEAPP
@@ -3412,7 +3479,7 @@ gdk_event_translate (MSG *msg,
if (LOWORD(msg->wParam) != WA_INACTIVE)
_gdk_input_set_tablet_active ();
break;
}
/* Handle WINTAB events here, as we know that gdkinput.c will
* use the fixed WT_DEFBASE as lcMsgBase, and we thus can use the
@@ -3439,10 +3506,12 @@ gdk_event_translate (MSG *msg,
event = gdk_event_new (GDK_NOTHING);
event->any.window = window;
g_object_ref (window);
if (_gdk_input_other_event (event, msg, window))
append_event (event);
else
gdk_event_free (event);
break;
}
@@ -3500,11 +3569,15 @@ gdk_event_check (GSource *source)
GDK_THREADS_ENTER ();
if (event_poll_fd.revents & G_IO_IN)
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
(modal_win32_dialog == NULL &&
PeekMessageW (&msg, NULL, 0, 0, PM_NOREMOVE)));
{
retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
(modal_win32_dialog == NULL &&
PeekMessageW (&msg, NULL, 0, 0, PM_NOREMOVE)));
}
else
retval = FALSE;
{
retval = FALSE;
}
GDK_THREADS_LEAVE ();
@@ -3542,6 +3615,13 @@ gdk_win32_set_modal_dialog_libgtk_only (HWND window)
modal_win32_dialog = window;
}
static gboolean
is_modally_blocked (GdkWindow *window)
{
GdkWindow *modal_current = _gdk_modal_current ();
return modal_current != NULL ? gdk_window_get_toplevel (window) != modal_current : FALSE;
}
static void
check_for_too_much_data (GdkEvent *event)
{
@@ -3549,7 +3629,9 @@ check_for_too_much_data (GdkEvent *event)
event->client.data.l[2] ||
event->client.data.l[3] ||
event->client.data.l[4])
g_warning ("Only four bytes of data are passed in client messages on Win32\n");
{
g_warning ("Only four bytes of data are passed in client messages on Win32\n");
}
}
gboolean

View File

@@ -276,6 +276,11 @@ void _gdk_wchar_text_handle (GdkFont *font,
void *),
void *arg);
void _gdk_push_modal_window (GdkWindow *window);
void _gdk_remove_modal_window (GdkWindow *window);
GdkWindow *_gdk_modal_current ();
#ifdef G_ENABLE_DEBUG
gchar *_gdk_win32_color_to_string (const GdkColor *color);
void _gdk_win32_print_paletteentries (const PALETTEENTRY *pep,

View File

@@ -85,7 +85,7 @@ void gdk_win32_selection_add_targets (GdkWindow *owner,
GdkAtom *targets);
/* For internal GTK use only */
GdkPixbuf * gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon);
GdkPixbuf *gdk_win32_icon_to_pixbuf_libgtk_only (HICON hicon);
HICON gdk_win32_pixbuf_to_hicon_libgtk_only (GdkPixbuf *pixbuf);
void gdk_win32_set_modal_dialog_libgtk_only (HWND window);

View File

@@ -51,6 +51,7 @@ static void gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass);
static void gdk_window_impl_win32_finalize (GObject *object);
static gpointer parent_class = NULL;
static GSList *modal_window_stack = NULL;
static void update_style_bits (GdkWindow *window);
static gboolean _gdk_window_get_functions (GdkWindow *window,
@@ -154,14 +155,17 @@ gdk_window_impl_win32_finalize (GObject *object)
{
if (GetCursor () == window_impl->hcursor)
SetCursor (NULL);
GDI_CALL (DestroyCursor, (window_impl->hcursor));
window_impl->hcursor = NULL;
}
if (window_impl->hicon_big != NULL)
{
GDI_CALL (DestroyIcon, (window_impl->hicon_big));
window_impl->hicon_big = NULL;
}
if (window_impl->hicon_small != NULL)
{
GDI_CALL (DestroyIcon, (window_impl->hicon_small));
@@ -338,6 +342,7 @@ RegisterGdkClass (GdkWindowType wtype, GdkWindowTypeHint wtype_hint)
wcl.hInstance = _gdk_app_hmodule;
wcl.hIcon = 0;
wcl.hIconSm = 0;
/* initialize once! */
if (0 == hAppIcon && 0 == hAppIconSm)
{
@@ -346,12 +351,16 @@ RegisterGdkClass (GdkWindowType wtype, GdkWindowTypeHint wtype_hint)
if (0 != GetModuleFileName (_gdk_app_hmodule, sLoc, MAX_PATH))
{
ExtractIconEx (sLoc, 0, &hAppIcon, &hAppIconSm, 1);
if (0 == hAppIcon && 0 == hAppIconSm)
{
if (0 != GetModuleFileName (_gdk_dll_hinstance, sLoc, MAX_PATH))
ExtractIconEx (sLoc, 0, &hAppIcon, &hAppIconSm, 1);
{
ExtractIconEx (sLoc, 0, &hAppIcon, &hAppIconSm, 1);
}
}
}
if (0 == hAppIcon && 0 == hAppIconSm)
{
hAppIcon = LoadImage (NULL, IDI_APPLICATION, IMAGE_ICON,
@@ -362,6 +371,7 @@ RegisterGdkClass (GdkWindowType wtype, GdkWindowTypeHint wtype_hint)
GetSystemMetrics (SM_CYSMICON), 0);
}
}
if (0 == hAppIcon)
hAppIcon = hAppIconSm;
else if (0 == hAppIconSm)
@@ -844,6 +854,9 @@ _gdk_windowing_window_destroy (GdkWindow *window,
if (private->extension_events != 0)
_gdk_input_window_destroy (window);
/* Remove ourself from the modal stack */
_gdk_remove_modal_window (window);
/* Remove all our transient children */
tmp = window_impl->transient_children;
while (tmp != NULL)
@@ -1775,7 +1788,9 @@ get_effective_window_decorations (GdkWindow *window,
if (((GdkWindowObject *) window)->window_type != GDK_WINDOW_TOPLEVEL &&
((GdkWindowObject *) window)->window_type != GDK_WINDOW_DIALOG)
return FALSE;
{
return FALSE;
}
if ((impl->hint_flags & GDK_HINT_MIN_SIZE) &&
(impl->hint_flags & GDK_HINT_MAX_SIZE) &&
@@ -1783,12 +1798,17 @@ get_effective_window_decorations (GdkWindow *window,
impl->hints.min_height == impl->hints.max_height)
{
*decoration = GDK_DECOR_ALL | GDK_DECOR_RESIZEH | GDK_DECOR_MAXIMIZE;
if (impl->type_hint == GDK_WINDOW_TYPE_HINT_DIALOG ||
impl->type_hint == GDK_WINDOW_TYPE_HINT_MENU ||
impl->type_hint == GDK_WINDOW_TYPE_HINT_TOOLBAR)
*decoration |= GDK_DECOR_MINIMIZE;
{
*decoration |= GDK_DECOR_MINIMIZE;
}
else if (impl->type_hint == GDK_WINDOW_TYPE_HINT_SPLASHSCREEN)
*decoration |= GDK_DECOR_MENU | GDK_DECOR_MINIMIZE;
{
*decoration |= GDK_DECOR_MENU | GDK_DECOR_MINIMIZE;
}
return TRUE;
}
@@ -1798,7 +1818,10 @@ get_effective_window_decorations (GdkWindow *window,
if (impl->type_hint == GDK_WINDOW_TYPE_HINT_DIALOG ||
impl->type_hint == GDK_WINDOW_TYPE_HINT_MENU ||
impl->type_hint == GDK_WINDOW_TYPE_HINT_TOOLBAR)
*decoration |= GDK_DECOR_MINIMIZE;
{
*decoration |= GDK_DECOR_MINIMIZE;
}
return TRUE;
}
else
@@ -1985,6 +2008,8 @@ gdk_window_set_transient_for (GdkWindow *window,
trans_impl->transient_children = NULL;
}
}
g_object_unref (G_OBJECT (window_impl->transient_owner));
g_object_unref (G_OBJECT (window));
window_impl->transient_owner = NULL;
}
@@ -1993,8 +2018,10 @@ gdk_window_set_transient_for (GdkWindow *window,
parent_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (parent)->impl);
parent_impl->transient_children = g_slist_append (parent_impl->transient_children, window);
g_object_ref (G_OBJECT (window));
parent_impl->num_transients++;
window_impl->transient_owner = parent;
g_object_ref (G_OBJECT (parent));
}
/* This changes the *owner* of the window, despite the misleading
@@ -2008,6 +2035,52 @@ gdk_window_set_transient_for (GdkWindow *window,
WIN32_API_FAILED ("SetWindowLong");
}
void
_gdk_push_modal_window (GdkWindow *window)
{
modal_window_stack = g_slist_prepend (modal_window_stack,
window);
}
void
_gdk_remove_modal_window (GdkWindow *window)
{
g_return_if_fail (window != NULL);
/* It's possible to be NULL here if someone sets the modal hint of the window
* to FALSE before a modal window stack has ever been created. */
if (modal_window_stack == NULL)
return;
/* Find the requested window in the stack and remove it. Yeah, I realize this
* means we're not a 'real stack', strictly speaking. Sue me. :) */
GSList *tmp = g_slist_find (modal_window_stack, window);
if (tmp != NULL)
{
modal_window_stack = g_slist_delete_link (modal_window_stack, tmp);
}
}
GdkWindow *
_gdk_modal_current ()
{
if (modal_window_stack != NULL)
{
GSList *tmp = modal_window_stack;
while (tmp != NULL && !GDK_WINDOW_IS_MAPPED (tmp->data))
{
tmp = g_slist_next (tmp);
}
return tmp != NULL ? tmp->data : NULL;
}
else
{
return NULL;
}
}
void
gdk_window_set_background (GdkWindow *window,
const GdkColor *color)
@@ -3313,9 +3386,11 @@ struct _FullscreenInfo
void
gdk_window_fullscreen (GdkWindow *window)
{
gint width, height;
gint x, y, width, height;
FullscreenInfo *fi;
GdkWindowObject *private = (GdkWindowObject *) window;
HMONITOR monitor;
MONITORINFO mi;
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -3327,9 +3402,22 @@ gdk_window_fullscreen (GdkWindow *window)
{
GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (private->impl);
width = GetSystemMetrics (SM_CXSCREEN);
height = GetSystemMetrics (SM_CYSCREEN);
monitor = MonitorFromWindow (GDK_WINDOW_HWND (window), MONITOR_DEFAULTTONEAREST);
mi.cbSize = sizeof (mi);
if (monitor && GetMonitorInfo (monitor, &mi))
{
x = mi.rcMonitor.left;
y = mi.rcMonitor.top;
width = mi.rcMonitor.right - x;
height = mi.rcMonitor.bottom - y;
}
else
{
x = y = 0;
width = GetSystemMetrics (SM_CXSCREEN);
height = GetSystemMetrics (SM_CYSCREEN);
}
/* remember for restoring */
fi->hint_flags = impl->hint_flags;
impl->hint_flags &= ~GDK_HINT_MAX_SIZE;
@@ -3340,7 +3428,7 @@ gdk_window_fullscreen (GdkWindow *window)
(fi->style & ~WS_OVERLAPPEDWINDOW) | WS_POPUP);
API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), HWND_TOP,
0, 0, width, height,
x, y, width, height,
SWP_NOCOPYBITS | SWP_SHOWWINDOW));
gdk_synthesize_window_state (window, 0, GDK_WINDOW_STATE_FULLSCREEN);
@@ -3451,13 +3539,20 @@ gdk_window_set_modal_hint (GdkWindow *window,
private->modal_hint = modal;
#if 1
#if 0
/* Not sure about this one.. -- Cody */
if (GDK_WINDOW_IS_MAPPED (window))
API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window),
modal ? HWND_TOPMOST : HWND_NOTOPMOST,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE));
#else
if (modal)
_gdk_push_modal_window (window);
else
_gdk_remove_modal_window (window);
#endif
}

View File

@@ -96,7 +96,6 @@ struct _GdkWindowImplWin32
struct _GdkWindowImplWin32Class
{
GdkDrawableImplWin32Class parent_class;
};
GType _gdk_window_impl_win32_get_type (void);

View File

@@ -754,11 +754,16 @@ _gdk_device_get_history (GdkDevice *device,
if (device_coords)
{
coords = _gdk_device_allocate_history (device, *n_events);
for (i=0; i<*n_events; i++)
gdk_input_translate_coordinates (gdkdev, input_window,
device_coords[i].data,
coords[i]->axes, NULL, NULL);
for (i = 0; i < *n_events; i++)
{
coords[i]->time = device_coords[i].time;
gdk_input_translate_coordinates (gdkdev, input_window,
device_coords[i].data,
coords[i]->axes, NULL, NULL);
}
XFreeDeviceMotionEvents (device_coords);
*events = coords;

40
gtk-2-12/.cvsignore Normal file
View File

@@ -0,0 +1,40 @@
*.lo
config.log
config.h
config.h.in
libtool
config.status
stamp-h
stamp-h1
Makefile
Makefile.in
aclocal.m4
configure
config.h.win32
gtk-config-2.0
config.cache
ABOUT-NLS
intl
stamp-h.in
gtk+.spec
gtk+-2.0.pc
gtk+-2.0-uninstalled.pc
gtk+-unix-print-2.0.pc
gtk+-linux-fb-2.0.pc
gtk+-nanox-2.0.pc
gtk+-x11-2.0.pc
gtk+-quartz-2.0.pc
gdk-2.0.pc
gdk-2.0-uninstalled.pc
gdk-linux-fb-2.0.pc
gdk-nanox-2.0.pc
gdk-x11-2.0.pc
gdk-quartz-2.0.pc
gdk-pixbuf-2.0.pc
gdk-pixbuf-2.0-uninstalled.pc
gtk-zip.sh
missing
install-sh
mkinstalldirs
sgml
autom4te.cache

65
gtk-2-12/AUTHORS Normal file
View File

@@ -0,0 +1,65 @@
Please do not mail any of the authors listed here
asking questions about this version of GTK+.
Original Authors
----------------
Peter Mattis <petm@xcf.berkeley.edu>
Spencer Kimball <spencer@xcf.berkeley.edu>
Josh MacDonald <jmacd@xcf.berkeley.edu>
The GTK+ Team (in alphabetical order)
-------------------------------------
Shawn T. Amundson <amundson@gtk.org>
Jerome Bolliet <bolliet@gtk.org>
Damon Chaplin <damon@gtk.org>
Tony Gale <gale@gtk.org>
Jeff Garzik <jgarzik@gtk.org>
Lars Hamann <lars@gtk.org>
Raja R Harinath <harinath@gtk.org>
Carsten Haitzler <raster@gtk.org>
Tim Janik <timj@gtk.org>
Stefan Jeske <stefan@gtk.org>
Elliot Lee <sopwith@gtk.org>
Raph Levien <raph@gtk.org>
Ian Main <imain@gtk.org>
Federico Mena <quartic@gtk.org>
Paolo Molaro <lupus@gtk.org>
Jay Painter <jpaint@gtk.org>
Manish Singh <manish@gtk.org>
Owen Taylor <otaylor@gtk.org>
There are many others who have contributed patches; we thank them,
GTK+ is much better because of them.
Over time, GTK+ has incorporated some pieces of software which
started as independent projects. We list the original authors here:
MS-Windows theme engine
-----------------------
Raymond Penners
Dom Lachowicz
Pixbuf theme engine
-------------------
Owen Taylor
IME input method
----------------
Takuro Ashie
Kazuki IWAMOTO
Mac OS X backend
----------------
Anders Carlsson
DirectFB backend
----------------
Denis Oliver Kropp
Sven Neumann
Mike Emmel

482
gtk-2-12/COPYING Normal file
View File

@@ -0,0 +1,482 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307 USA.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

9790
gtk-2-12/ChangeLog Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,514 @@
2006-04-30 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystem.[ch] (gtk_file_info_render_icon): remove the
caching code,
(gtk_file_info_get_icon_name): new function,
(gtk_file_system_volume_get_icon_name): new function,
(gtk_file_system_volume_render_icon): refactor to use
get_icon_name() and render the icon on the fly.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_volume_render_icon),
(gtk_file_system_unix_volume_get_icon_name): reflect updates in
file system interface,
(get_fallback_icon): remove, along with icon caching code.
* gtk/gtk.symbols: updated.
2006-04-30 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystemmodel.c (got_root_folder_cb), (ref_path_cb),
(get_children_get_folder_cb): don't leak the handle,
(got_root_folder_cb), (get_children_get_folder_cb): emit
row-inserted for the newly added nodes.
2006-04-30 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (file_list_drag_data_select_uris),
(file_list_drag_data_received_get_info_cb),
(file_list_drag_data_received_cb): refactor code for selecting
multiple uris into file_list_drag_data_select_uris().
2006-04-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserbutton.c (dnd_select_folder_get_info_cb): don't
leak handle,
(change_icon_theme_get_info_cb), (set_info_get_info_cb),
(model_add_special_get_info_cb), (update_label_get_info_cb): ditto.
* gtk/gtkfilechooserdefault.c (shortcuts_reload_icons_get_info_cb):
don't leak the handle,
(get_file_info_finished), (edited_idle_create_folder_cb),
(file_list_drag_data_received_get_info_cb),
(show_and_select_paths_get_folder_cb),
(update_current_folder_get_info_cb), (add_shortcut_get_info_cb),
(confirmation_confirm_get_info_cb), (action_create_folder_cb),
(save_entry_get_info_cb), (shortcuts_activate_volume_mount_cb),
(shortcuts_activate_get_info_cb), (update_from_entry_get_info_cb):
ditto.
* gtk/gtkfilechooserentry.c (load_directory_get_folder_callback):
don't leak the handle.
* gtk/gtkpathbar.c (set_button_image_get_info_cb),
(gtk_path_bar_get_info_callback): don't leak the handle.
2006-04-23 Kristian Rietveld <kris@imendio.com>
Review.
* gtk/gtkfilechooserdefault.c (shortcuts_reload_icons_get_info_cb):
don't forget to unref data->impl at the end.
2006-04-23 Kristian Rietveld <kris@imendio.com>
Review, continued.
* gtk/gtkfilechooserdialog.c (response_cb): set response_requested
to FALSE after stopping emission of the response signal.
2006-03-16 Kristian Rietveld <kris@imendio.com>
More review work.
* gtk/gtkfilechooserprivate.h: remove idle_finished_loading_source
from GtkFileSystemModel.
* gtk/gtkfilesystemmodel.c (gtk_file_system_model_finalize): remove
idle_finished_loading_source,
(idle_finished_loading_cb), (queue_finished_loading): removed,
(got_root_folder_cb): save a list walk, immediately emit
finished-loading and don't queue it, since we are already in an
idle here, always list_children() so the children the folder already
has are returned,
(_gtk_file_system_model_new): handle the case where NULL is
returned by _get_folder(),
(_gtk_file_system_model_path_do): remove comment, and append the
new handle to the list, don't try to remove,
(get_children_get_folder_cb): save a list walk, remove the dummy
child if the _get_folder() call fails or is cancelled.
2006-03-14 Kristian Rietveld <kris@imendio.com>
More suggestions from Federico.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder):
remove check for filename_is_root(), since we never hit that code
and else mkdir will fail anyway,
(gtk_file_system_unix_create_folder): fixup parent folder refresh
code.
2006-03-14 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystemunix.c (read_hidden_file), (fill_in_hidden),
(get_is_hidden_for_file): factor out g_file_get_contents() code
in read_hidden_file(). (Federico Mena Quintero).
2006-03-14 Kristian Rietveld <kris@imendio.com>
Icon name code suggestions by Federico Mena Quintero.
* gtk/gtkfilesystemunix.c: add GTK_FILE_INFO_ICON to
STAT_NEEDED_MASK,
(get_fallback_icon_name), (get_fallback_icon),
(get_icon_name_for_directory), (get_special_icon_name): get rid
of strdups,
(get_icon_type_from_path): add a statbuf argument and use the
statbuf when folder_unix is NULL,
(create_file_info): adapt to work with above changes.
2006-03-14 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_info): path
is NULL is an error here (gtk_file_system_get_info() already guards
path = NULL),
(gtk_file_system_unix_get_info): move basename creation to just
before create_file_info(). (Federico Mena Quintero).
2006-03-14 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystemunix.c (struct _GtkFileFolderUnix): add
load_folder_id field,
(load_folder): add thread enter/leave construct, set load_folder_id
to zero since we have the idle removed when we return,
(gtk_file_system_unix_get_folder): initialize load_folder_id to 0
and store the source id of the load_folder idle,
(gtk_file_folder_unix_finalize): remove the load_folder idle
if necessary. (Federico Mena Quintero).
2006-03-14 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooser.c (gtk_file_chooser_get_current_folder): return
NULL if there is no current folder path.
* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_map): we
reload the current folder if there is one, else we continue the
still pending load.
2006-03-14 Kristian Rietveld <kris@imendio.com>
Couple of fixes from Markku Vire.
* gtk/gtkfilesystem.c (gtk_file_info_copy): also strdup icon_name
and display_key.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder):
initialize error to NULL,
(gtk_file_folder_unix_list_children): return an empty list for now if
we couldn't read the directory.
2005-12-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb),
(gtk_file_chooser_default_update_current_folder): set and unset
busy cursor while checking whether the given path is a folder.
2005-12-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystem.h: change the GtkFileInfo argument of the
GetInfoCallback to be const.
* gtk/gtkfilechooserbutton.c, gtk/gtkfilechooserdefault.c,
gtk/gtkpathbar.c: changes functions to reflect the above change.
2005-12-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c, gtk/gtkfilechooserprivate.h: keep track
of handles, cancel all pending operations on dispose.
2005-12-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserprivate.h (struct _GtkFileSystemModel): add
pending_handles field,
(struct _FileModelNode): add load_pending flag.
* gtk/gtkfilesystemmodel.c (gtk_file_system_model_dispose): introduce,
cancel all pending operations here,
(got_root_folder_cb), (_gtk_file_system_model_new), (ref_path_cb),
(_gtk_file_system_model_path_do): keep track of all pending
operations, handle cancelled operations.
2005-12-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_finalize),
(gtk_file_chooser_button_destroy): move all handle cancellations
and object unrefs to destroy.
* gtk/gtkpathbar.c (gtk_path_bar_finalize), (gtk_path_bar_dispose):
likewise.
* gtk/gtkfilechooserentry.c (gtk_file_chooser_entry_class_init):
add dispose,
(gtk_file_chooser_entry_dispose): cancel handles and unrefs
objects here instead of finalize.
2005-12-23 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystem.c (get_cached_icon): check if "name" is an
absolute path, if so load the icon from that file.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): fix
the build.
2005-12-21 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder): remove
the FIXME since it doesn't make sense, when we return a cached
folder we won't emit finished-loading either,
(gtk_file_system_unix_create_folder): remove unused variable,
(gtk_file_folder_unix_list_children): remove unused code,
(get_is_hidden_for_file): new function,
(create_file_info): also handle getting is_hidden when called
without a folder unix (from _system_get_info() for example).
2005-12-20 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (check_is_folder): fully removed!
woo!,
(check_save_entry): add is_folder argument,
(gtk_file_chooser_default_get_paths): update check_save_entry() call,
(get_display_name_for_folder): removed,
(confirmation_confirm_get_info_cb): new function which will
handle the confirmation dialog now we have all information for it,
(should_respond_after_confirm_overwrite): replace the call to
get_display_name_for_folder() with an asynchronous solution,
(action_create_folder_cb): request dialog response on successfull
folder creation,
(gtk_file_chooser_default_should_respond): update call to
check_save_entry(); replace the check is folder call for "path"
by just using the is_folder return value from check_save_entry();
replaced the check is folder call for "parent_path" with an
asynchronous setup, remainder of that work is now done in
save_entry_get_info_cb(),
(save_entry_get_info_cb): new function.
* gtk/gtkfilechoosermebed.[ch]: add response-requested signal.
* gtk/gtkfilechooserdialog.c, gtk/gtkfilechooserprivate.h: handle
response_requested signal.
* gtk/gtkfilechooserentry.[ch]
(_gtk_file_chooser_entry_get_is_folder): new function.
2005-12-20 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (ref_path_cb): when called with
!folder, check if node is the node we are looking for (can be
triggered when we call ref_path_cb ourselves after a find_child_node),
(_gtk_file_system_model_path_do): introduce parent_node field;
after finding a child node in a loaded parent node, don't forget
to call ref_path_cb,
(get_children_get_folder_cb): don't forget to set data->node->folder
to the newly acquired folder.
2005-12-20 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (show_and_select_paths_get_folder_cb):
handle case where the folder we get already finished loading.
* gtk/gtkfilesystemmodel.c (ref_path_cb),
(_gtk_file_system_model_path_do): make this work.
2005-12-19 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (shortcuts_update_count): modify
in such a way that it can also negatively update the count on
failures,
(get_file_info_finished): handle failures, update save folder
combo box on success,
(shortcuts_insert_path): change the boolean return value into a
void one, also refilter the model and update the save folder combo
box for the non-asynchronous case,
(shortcuts_append_home), (shortcuts_append_desktop),
(shortcuts_add_volumes), (shortcuts_add_current_folder),
(add_shortcuts_get_info_cb): adapt to shortcuts_insert_path() updates.
2005-12-19 Kristian Rietveld <kris@imendio.com>
* gtk/gtkpathbar.[ch]: add handle fields to ButtonData and
GtkPathBar; do correct handle bookkeeping.
* gtk/gtkfilesystemunix.c (load_folder),
(gtk_file_system_unix_get_folder),
(gtk_file_folder_unix_is_finished_loading): add is_finished_loading
field to GtkFileFolderUnix, which is set to true once we are
really finished with loading (previous assumption that we are
always finshed loading is not true anymore).
* gtk/gtkfilesystemmodel.c (got_root_folder_cb): if the folder is
finished loading, list the children and update the root level.
* gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb):
handle cancellation.
2005-12-16 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystemunix.c: always call the callback, even when
cancelled; ref handles passed to the callback queue functions;
don't set cancelled to TRUE in _cancel_operation(), since operations
in this backend are always completed,
(get_special_icon_name): don't strdup the value of
get_icon_name_for_directory() again.
* gtk/gtkfilechooserbutton.c: adapt to new cancellation policy;
reference all objects which are passed as callback arguments; in the
callback check if the handles match.
* gtk/gtkfilechooserentry.c: likewise.
* gtk/gtkfilechooserdefault.c: likewise. Also changed the shortcut
loading code to be more like the code in GtkFileChooserButton, where
we store all handles in the model and have model_row_free_data
cancel any pending operations,
(shortcuts_model_create): copy the error.
* gtk/gtkfilechooserprivate.h (struct _GtkFileChooserDefault): remove
loading_volumes and loading_bookmarks fields.
* gtk/gtkfilesystem.c (gtk_file_info_free): free icon_name here...
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (edited_idle_create_folder_cb): fix
thinko.
* gtk/gtkfilesystemunix.c (dispatch_create_folder_callback),
(queue_create_folder_callback): need to copy/free the path,
(gtk_file_system_unix_create_folder): put the "reget folder" hack
back in, though it's working different now.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserbutton.c (gtk_file_chooser_button_finalize),
(dnd_select_folder_get_info_cb), (gtk_file_chooser_drag_data_received),
(change_icon_theme_get_info_cb), (change_icon_theme),
(model_add_special_get_info_cb), (model_add_special),
(update_label_get_info_cb), (update_label_and_image): cancel existing
operations, if any; added apprioriate fields to
GtkFileChooserButtonPrivate.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserentry.c (gtk_file_chooser_entry_finalize): if
there's a folder loading, cancel the operation,
(load_directory_get_folder_callback): set the loading folder handle
to NULL,
(load_directory_callback): cancel any currently loading folders
before starting a new get folder operation.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (shortcuts_insert_path): don't overwrite
data if it's already set (for example by the "is volume" case).
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserbutton.c (set_info_get_info_cb),
(set_info_for_path_at_iter): store a row reference in the temporary
data structure and not an iter,
(model_add_special), (model_update_current_folder),
(gtk_file_chooser_button_add_shorcut_folder): remove unused pixbuf
variable.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (get_file_info_finished),
(shortcuts_insert_path): replace gtk_file_system_render_icon() call
with gtk_file_system_get_file_info(),
(gtk_file_chooser_default_add_shortcut_folder),
(gtk_file_chooser_default_remove_shortcut_folder): handle shortcuts
which are still loading.
* gtk/gtkfilechooserprivate.h: add shortcuts_loading field to
struct _GtkFileChooserDefault.
* gtk/gtkfilechooserbutton.c (set_info_get_info_cb),
(set_info_for_path_at_iter), (model_free_row_data): keep handle
and path together; now supports adding/removing shortcuts
which are still loading.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystem.c: make the cancelled field an GObject property.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystem.h: make the GError argument in the callbacks
const.
* gtk/gtkfilechooserbutton.c: update callbacks,
* gtk/gtkfilechooserentry.c: likewise,
* gtk/gtkfilechooserdefault.c: likewise,
* gtk/gtkfilesystemmodel.c: likewise,
* gtk/gtkpathbar.c: likewise.
* gtk/gtkfilechooserdefault.c (edited_idle_create_folder_cb): copy
the error which will be passed to error_creating_folder_dialog(),
(action_create_folder_cb): likewise,
(file_list_drag_data_received_get_info_cb): add forgotten GError
declaration.
2005-12-13 Kristian Rietveld <kris@imendio.com>
* gtk/gtkpathbar.c (get_button_image), (set_button_image),
(set_button_image_get_info_cb),
(gtk_path_bar_update_button_appearance): update to new icon
rendering call.
2005-12-09 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (file_list_drag_data_received),
(gtk_file_chooser_default_add_shortcut_folder),
(shortcuts_activate_get_info_cb): replace synchronous check_is_folder
calls with an async gtk_file_system_get_info() solution.
2005-12-09 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilesystem.c (icon_cache_element_free), (icon_theme_changed),
(get_cached_icon), (gtk_file_info_render_icon): implement pixbuf
caching as found in the file system backends.
2005-12-09 Kristian Rietveld <kris@imendio.com>
* gtk/gtk.symbols: updated.
* gtk/gtkfilesystem.[ch] (struct GtkFileInfo): added icon_name field,
(enum GtkFileInfoType): added GTK_FILE_INFO_ICON,
(gtk_file_info_set_icon_name): new function,
(gtk_file_info_render_icon): new function,
(gtk_file_system_render_icon): removed.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_render_icon): removed,
(create_file_info): fill icon_name field if required,
(get_*_icon): modified to suit create_file_info() better.
* gtk/gtkfilechooserbutton.c: modified to use
gtk_file_info_render_icon() instead of gtk_file_system_render_icon().
* gtk/gtkfilechooserdefault.c: likewise.
2005-12-06 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (get_file_info_finished),
(update_current_folder_get_info_cb): fix mem leaks.
* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_info): ditto.
* gtk/gtkpathbar.c (gtk_path_bar_set_path_finish): ditto.
2005-12-06 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserbutton.c (dnd_select_folder_get_info_cb),
(gtk_file_chooser_button_drag_data_received): make asynchronous,
(update_label_and_image): remove unused variable.
* gtk/gtkfilechooserdefault.c
(gtk_file_chooser_default_update_current_folder): split in two
functions, so we can have the is_folder check back.
* gtk/gtkfilechooserprivate.h: add update_current_folder_handle
field.
2005-12-06 Kristian Rietveld <kris@imendio.com>
* gtk/gtkfilechooserdefault.c (show_and_select_paths): fixed a typo.
2005-12-05 Federico Mena Quintero <federico@ximian.com>
(merge from HEAD)
* gtk/gtkfilechooserdefault.c (trap_activate_cb): "event->state &
modifiers", not "event->state && modifiers". Patch by Sadrul
Habib Chowdhury <imadil@gmail.com>. Fixes bug #323073.
2005-12-06 Kristian Rietveld <kris@imendio.com>
Beginnings of an asynchronous file chooser.
* gtk/gtkfilechooserbutton.c: display name and the is folder property
are now asynchronously set using set_info_for_at_path_iter(), the
is folder property is now also stored in the tree model.
* gtk/gtkfilechooserdefault.c: lots of changes to the shortcuts
model code to make it operate asynchronously, check_is_folder() has
been "disabled" for now, all other synchronous calls were
replaced with asychronous ones.
* gtk/gtkfilechooserentry.c: update call to
gtk_file_system_get_folder().
* gtk/gtkfilechooserprivate.h: added two fields.
* gtk/gtkfilesystem.[ch]: for about 85% changed to the changes
outlined in the proposal discussed on gtk-devel-list.
* gtk/gtkfilesystemmodel.[ch]: updated all asynchronous calls,
_gtk_file_system_model_path_do() basically had to be rewritten
(and I still need to finish that).
* gtk/gtkfilesystemunix.c: changed to be compatible with the new
GtkFileSystem interface.
* gtk/gtkpathbar.c (button_clicked_cb): block/unblock the
button_clicked_cb callback around the call to
gtk_toggle_button_set_active(), avoids button_clicked_cb getting
called twice.
(_gtk_path_bar_set_path): refactored to be asynchronous.

View File

@@ -0,0 +1,500 @@
2006-04-17 Matthias Clasen <mclasen@redhat.com>
* docs/tools/widgets.c (get_all_widgets): Add print dialog
and page setup dialog.
2006-04-11 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkpapersize.c (gtk_paper_size_get_display_name):
Call gettext on the standard paper names.
2006-04-11 Alexander Larsson <alexl@redhat.com>
* gdk/gdk.symbols:
* gdk/win32/gdkevents-win32.c:
* gdk/win32/gdkwin32.h:
Add gdk_win32_set_modal_dialog_libgtk_only that we
need for handling the mainloop in the print dialogs.
* gtk/gtkprintoperation-win32.c:
Pump the gtk+ mainloop when needed in the print dialogs.
This means gtk+ windows will redraw while the print dialogs
are up.
2006-04-10 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintoperation-win32.c:
Better size handling.
Save win32-specific settings in additions to the generic ones
if the generic one is lossy.
2006-04-10 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintoperation-win32.c:
Finish implementing run_page_setup_dialog.
* gtk/gtkpagesetup.h:
* gtk/gtkpapersize.h:
* gtk/gtkprint-win32.h:
* gtk/gtkprintcontext.h:
* gtk/gtkprinter-private.h:
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.h:
* gtk/gtkprintsettings.h:
s/EGG/GTK/
2006-04-09 Matthias Clasen <mclasen@redhat.com>
* gtk+-unix-print-2.0.pc.in: Fix a typo (#337698)
2006-04-07 Matthias Clasen <mclasen@redhat.com>
* gtk/paper_names_offsets.c:
* gtk/gen-paper-names.c: Correct the suffix/duplicate optimizations.
2006-04-07 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintoperation-win32.c:
Initial work on gtk_print_run_page_setup_dialog.
Not reading margins yet.
2006-04-07 Alexander Larsson <alexl@redhat.com>
* gtk/Makefile.am:
Link to winspool
* gtk/gtk.symbols:
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.[ch]:
Add gtk_print_operation_get_status_string() and status
string to _gtk_print_operation_set_status.
Rename GTK_PRINT_STATUS_PROCESSING to GTK_PRINT_STATUS_PRINTING.
* gtk/gtkprintoperation-win32.c:
Poll for status updates
* modules/printbackends/cups/gtkprintbackendcups.c:
Rename GTK_PRINT_STATUS_PROCESSING to GTK_PRINT_STATUS_PRINTING.
* tests/print-editor.c:
Show print status string
2006-04-06 Matthias Clasen <mclasen@redhat.com>
* gtk/paper_names_offsets.c:
* gtk/gtkpapersize.c: Save 4K of .data by converting
the array of paper names to offsets.
* gtk/gen-paper-names.c: Utility used to create
paper_names_offsets.c from paper_names.c.
* gtk/Makefile.am: Necessary glue.
2006-04-06 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintoperation-win32.c:
Use glib base64 code.
Set up manual_* vars fully.
2006-04-06 Alexander Larsson <alexl@redhat.com>
* gtk/Makefile.am:
Add -lcomdlg32 on win32
* gtk/gtkprint-win32.h:
Move WINVER define to .c files
* gtk/gtk.symbols:
* gtk/gtkprintoperation-win32.c:
Add empty gtk_print_run_page_setup win implementation
Move WINVER define to this file
* modules/Makefile.am:
Only build print backends on unix
2006-04-05 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintunixdialog.c:
* gtk/gtkprintoperation-unix.c: Use GTK_RESPONSE_CANCEL/OK
instead of GTK_RESPONSE_REJECT/ACCEPT, to make Esc close
the dialog, and to not use values which are documented
as reserved for apps.
2006-04-05 Alexander Larsson <alexl@redhat.com>
* modules/printbackends/lpr/gtkprintbackendlpr.c:
Don't hardcode lpr command, expose full commandline.
2006-04-05 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
* gtk/gtkprintunixdialog.c:
Don't check for printer changes after dialog is dead.
* gtk/gtkprintbackend.c: (gtk_print_backend_load_modules):
Strip whitespace from backend strings
* gtk/gtkprintbackend.h:
Add private printer functions
* gtk/gtkprinter-private.h:
Move GtkPrinterPrivate into gtkprinter.c
* gtk/gtkprinter.[ch]:
Move GtkPrinterPrivate into gtkprinter.c
Add new construct properties.
Add setter functions.
* modules/printbackends/cups/gtkprintbackendcups.c:
* modules/printbackends/cups/gtkprintercups.[ch]:
Update to new APIs.
* modules/printbackends/lpr/Makefile.am:
* modules/printbackends/lpr/gtkprintbackendlpr.c:
* modules/printbackends/lpr/gtkprinterlpr.[ch]
Update to new APIs.
Remove GtkPrinterLPR.
Read/Save command line option in settings
* modules/printbackends/pdf/Makefile.am:
* modules/printbackends/pdf/gtkprintbackendpdf.c:
* modules/printbackends/pdf/gtkprinterpdf.[ch]:
Update to new APIs.
Remove GtkPrinterPDF.
2006-04-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintoperation.h: Add missing standard
GObject macros. (#337277, Yevgen Muntyan)
2006-04-04 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprinteroption.[ch]:
Add gtk_printer_option_has_choice.
* gtk/gtkprintunixdialog.c:
* modules/printbackends/cups/gtkprintbackendcups.c:
Add support for "print at time".
2006-04-04 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpapersize.c:
Handle ppd names with ".Transverse" suffix
Don't force width < height
* gtk/gtkprinteroption.c:
Make sure that value is never NULL.
* modules/printbackends/cups/gtkprintbackendcups.c:
Add some HP whitelist names
Remove spew from ignored options.
2006-04-03 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
Fix warnings
* gtk/gtkprinter-private.h:
* gtk/gtkprinter.[ch]:
Add gtk_printer_is_default.
* gtk/gtkprintunixdialog.c:
Use gtk_printer_is_default.
* modules/printbackends/cups/gtkprintbackendcups.c:
Get default printer info
* modules/printbackends/pdf/gtkprintbackendpdf.c:
Fix warning.
2006-04-03 Alexander Larsson <alexl@redhat.com>
* modules/printbackends/pdf/gtkprintbackendpdf.c:
* modules/printbackends/pdf/gtkprinterpdf.[ch]:
Correctly read/write/use the output filename setting.
2006-04-03 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
Disable margin from printers if there are no printers.
* gtk/gtkpapersize.c:
Fix build.
2006-04-01 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols: protect unix-only symbols by
G_OS_UNIX (#336819, Yevgen Muntyan)
* gtk/gtkpapersize.c: Win32 fixes. (#336806, Yevgen Muntyan)
2006-03-30 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
Update
* gtk/gtkprintbackend.[ch]:
Add dnotify to gtk_print_backend_print_stream
* gtk/gtkprinter-private.h:
Declare gtk_print_job_set_status
* gtk/gtkprinter.[ch]:
Remove gtk_printer_prepare_job.
* gtk/gtkprintjob.[ch]:
Now you create print job directly with gtk_print_job_new() and
they'll be prepared automatically.
Add status_changed signal and get_status.
Add gtk_print_job_set_source_file to allow sending a file.
* gtk/gtkprintoperation-private.h:
Add destroy notify for platform_data.
Declare _gtk_print_operation_set_status.
* gtk/gtkprintoperation-unix.c:
Hook up status change handling.
Use the new way to get a print job.
* gtk/gtkprintoperation.[ch]:
Add status_changed signal and get_status/is_finished.
* modules/printbackends/cups/gtkprintbackendcups.c:
* modules/printbackends/lpr/gtkprintbackendlpr.c:
* modules/printbackends/pdf/gtkprintbackendpdf.c:
Update to use new APIs and set status on the job.
Cups polls for the status.
* tests/print-editor.c:
Track the print operations in the status bar.
2006-03-30 Alexander Larsson <alexl@redhat.com>
* gtk/Makefile.am:
* gtk/gtkprintbackend.c:
Default to "pdf,cups" if we found cups, and
"pdf,lpr" otherwise.
2006-03-29 Matthias Clasen <mclasen@redhat.com>
* modules/printbackends/Makefile.am:
* configure.in: Don't build the cups backend
if cups is not there.
2006-03-29 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
gtk_printer_prep_job -> gtk_printer_prepare_job
gtk_print_job_prep -> gtk_print_job_prepare
* gtk/gtkprintbackend.h:
* gtk/gtkprinter-private.h:
* gtk/gtkprinter.[ch]:
Add print_job argument to printer_prepare_for_print
gtk_printer_prep_job -> gtk_printer_prepare_job
* gtk/gtkprintjob.[ch]:
Add manual rendering settings to GtkPrintJob.
gtk_print_job_prep -> gtk_print_job_prepare
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.c:
Get more manual_* settings working.
Run mainloop after each printed page.
* gtk/gtkprintunixdialog.c:
Save page ranges.
* modules/printbackends/cups/gtkprintbackendcups.c:
* modules/printbackends/lpr/gtkprintbackendlpr.c:
* modules/printbackends/pdf/gtkprintbackendpdf.c:
Now put the manual_* settings inside the PrintJob in
prepare_for_print.
2006-03-29 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintunixdialog.c:
Make sure we remember the format-for printer.
Also, use it as the default if set.
2006-03-28 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintunixdialog.c:
Remove unnecessary padding under list.
2006-03-28 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
* gtk/gtkprintunixdialog.c:
More HIGy layout.
2006-03-28 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
HIG conformance of spacing and titles.
* gtk/gtkprintunixdialog.c:
Use standard constructor form print button too.
2006-03-27 Matthias Clasen <mclasen@redhat.com>
* modules/printbackends/*/Makefile.am: Fix
a problem with builddir != srcdir builds.
(#335915, Yevgen Muntyan)
2006-03-27 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintbackend.c: Simply the syntax
of the setting to "cups,pdf", and get rid
of the GScanner used to parse it.
2006-03-27 Alexander Larsson <alexl@redhat.com>
* gtk/gtkprintunixdialog.c:
Reorder print list so status is at the end.
Ellipsize the status column.
2006-03-27 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
Handle removed printers and status-changed.
Handle NULL printer location.
2006-03-27 Alexander Larsson <alexl@redhat.com>
* gtk/Makefile.am:
* gtk/stock-icons/24/gtk-orientation-landscape.png:
* gtk/stock-icons/24/gtk-orientation-portrait.png:
* gtk/stock-icons/24/gtk-orientation-reverse-landscape.png:
* gtk/gtkiconfactory.c: (get_default_icons):
* gtk/gtkstock.h:
Add orientation stock icons.
* gtk/gtkpagesetupunixdialog.c:
Use the orientation icons.
2006-03-27 Alexander Larsson <alexl@redhat.com>
* gtk/gtkpagesetupunixdialog.c:
* gtk/gtkprintjob.c:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintunixdialog.c:
s/impl/dialog/
Don't prefix static functions with _
2006-03-26 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkprintunixdialog.c: Don't use _(""). (#335898,
Christian Persch)
* modules/printbackends/*: Don't use G_DEFINE_TYPE
in modules.
* gtk/gtkprintbackend.c: Remove an unused static function.
2006-03-25 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk.symbols: Add printing symbols
* gtk/gtkpapersize.[hc]:
* gtk/gtkpage*.[hc]:
* gtk/gtkprint*.[hc]: Add aliasing, #include cleanups.
* gtk/gtkprintcontext.h:
* gtk/gtkprintoperation.h:
* gtk/gtkprintsettings.h: Make get_type function const.
* modules/printbackends/pdf/gtkprintbackendpdf.c: Remove
C99ism.
* modules/printbackends/cups/gtkcupsutils.c: Use unsigned
integers for bitfields.
2006-03-24 Matthias Clasen <mclasen@redhat.com>
* gtk/gtknotebook.c: Fix docs
* gtk/Makefile.am (EXTRA_DIST): Add the stock icons here.
* gdk/directfb/Makefile.am (EXTRA_DIST): Remove ChangeLog,
to make make dist happier.
2006-03-24 Alexander Larsson <alexl@redhat.com>
* configure.in:
* gtk/gtkprintbackend.c:
* modules/printbackends/Makefile.am:
* modules/printbackends/cups/Makefile.am:
* modules/printbackends/lpr/Makefile.am:
* modules/printbackends/lpr/gtkprintbackendlpr.[ch]:
* modules/printbackends/lpr/gtkprinterlpr.[ch]:
* modules/printbackends/pdf/Makefile.am:
* modules/printbackends/pdf/gtkprintbackendpdf.[ch]:
* modules/printbackends/pdf/gtkprinterpdf.[ch]:
Import pdf and lpr backend
2006-03-24 Alexander Larsson <alexl@redhat.com>
Import print-operation into gtk+
* .cvsignore:
* Makefile.am:
* gtk+-unix-print-2.0.pc.in:
Add gtk+-unix-print-2.0.pc
* configure.in:
Look for cups
Look for various _NL_* extensions
Output new makefiles and .pc.in
* gtk/Makefile.am:
Add new files
* gtk/gtk.h:
Include gtkprintoperation.h
* gtk/gtkenums.h:
Add printing enums
* gtk/gtkmarshalers.list:
Add required new marshallers
* gtk/gtkpagesetup.[ch]:
* gtk/gtkpagesetupunixdialog.[ch]:
* gtk/gtkpagesetupunixdialog.h:
* gtk/gtkpapersize.[ch]:
* gtk/gtkprint-win32.[ch]:
* gtk/gtkprintbackend.[ch]:
* gtk/gtkprintcontext.[ch]:
* gtk/gtkprinter-private.h:
* gtk/gtkprinter.[ch]:
* gtk/gtkprinteroption.[ch]:
* gtk/gtkprinteroptionset.[ch]:
* gtk/gtkprinteroptionwidget.[ch]:
* gtk/gtkprintjob.[ch]:
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation-win32.c:
* gtk/gtkprintoperation.[ch]:
* gtk/gtkprintsettings.[ch]:
* gtk/gtkprintunixdialog.[ch]:
* gtk/paper_names.c:
Generic printing support
* modules/Makefile.am:
* modules/printbackends/Makefile.am:
* modules/printbackends/cups/Makefile.am:
* modules/printbackends/cups/gtkcupsutils.[ch]:
* modules/printbackends/cups/gtkprintbackendcups.[ch]:
* modules/printbackends/cups/gtkprintercups.[ch]:
Cups backend
* tests/.cvsignore:
* tests/Makefile.am:
* tests/print-editor.c:
Add printing test app

4961
gtk-2-12/ChangeLog.pre-1-0 Normal file

File diff suppressed because it is too large Load Diff

9106
gtk-2-12/ChangeLog.pre-1-2 Normal file

File diff suppressed because it is too large Load Diff

28743
gtk-2-12/ChangeLog.pre-2-0 Normal file

File diff suppressed because it is too large Load Diff

9300
gtk-2-12/ChangeLog.pre-2-10 Normal file

File diff suppressed because it is too large Load Diff

7358
gtk-2-12/ChangeLog.pre-2-2 Normal file

File diff suppressed because it is too large Load Diff

11857
gtk-2-12/ChangeLog.pre-2-4 Normal file

File diff suppressed because it is too large Load Diff

7235
gtk-2-12/ChangeLog.pre-2-6 Normal file

File diff suppressed because it is too large Load Diff

5381
gtk-2-12/ChangeLog.pre-2-8 Normal file

File diff suppressed because it is too large Load Diff

59
gtk-2-12/HACKING Normal file
View File

@@ -0,0 +1,59 @@
If you want to hack on the GTK+ project, you'll need to have
the following packages installed:
- GNU autoconf 2.54
- GNU automake 1.7
- GNU libtool 1.4
- indent (GNU indent 1.9.1 is known good)
- GNU gettext 10.40
These should be available by ftp from ftp.gnu.org or any of the
fine GNU mirrors. Beta software can be found at alpha.gnu.org.
Up-to-date instructions about developing GNOME applications and libraries
can be found here:
http://developer.gnome.org
including information about using Subversion with GNOME:
http://developer.gnome.org/tools/svn.html
In order to get SVN gtk+ installed on your system, you need to have
the most recent SVN versions of glib, pango, and atk installed as well.
The installation process of these libraries is similar to that of gtk+, but
needs to be fulfilled prior to installation of gtk+.
If at all possible, please use SVN to get the latest development version of
gtk+ and glib. You can do the following to get glib and gtk+ from SVN:
$ svn checkout http://svn.gnome.org/svn/glib/trunk glib
$ svn checkout http://svn.gnome.org/svn/pango/trunk pango
$ svn checkout http://svn.gnome.org/svn/atk/trunk atk
$ svn checkout http://svn.gnome.org/svn/gtk+/trunk gtk+
To compile the SVN version of gtk+ on your system, you will need to take
several steps to setup the tree for compilation. You can do all these
steps at once by running:
gtk+$ ./autogen.sh
Basically this does the following for you:
gtk+$ aclocal; automake; autoconf
The above commands create the `configure' script. Now you
run the `configure' script in `gtk+/' to create all Makefiles.
More information about that in `INSTALL'.
Before running `autogen.sh' or `configure', make sure you have libtool
in your path.
Note that autogen.sh runs configure for you. If you wish to pass
options like `--prefix=/usr' to `configure' you can give those options
to `autogen.sh' and they will be passed on to `configure'.
For information about submitting patches and committing changes
to SVN, see the `README' and `README.commits' files. In particular,
don't, under any circumstances, commit anything to SVN before
reading and understanding `README.commmits'.

41
gtk-2-12/INSTALL Normal file
View File

@@ -0,0 +1,41 @@
Prerequisites
=============
GTK+ requires the following packages:
- The GLib, Pango, ATK and cairo libraries, available at the same
location as GTK+. GTK+ 2.12.8 requires at least GLib 2.12,
Pango 1.13, ATK 1.9 and cairo 1.2.
- The TIFF, PNG, and JPEG image loading libraries. You most
likely have these installed on your system already. If not
these libraries are available from:
http://www.libtiff.org/
http://www.libpng.org/
http://www.ijg.org/
libtiff must be version 3.6.0 or higher.
Simple install procedure
========================
% gzip -cd gtk+-2.12.8.tar.gz | tar xvf - # unpack the sources
% cd gtk+-2.12.8 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]
% make install # install GTK+
The Details
===========
Complete information about installing GTK+ and related libraries can be found
in the file:
docs/reference/gtk/html/gtk-building.html
Or online at:
http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html

41
gtk-2-12/INSTALL.in Normal file
View File

@@ -0,0 +1,41 @@
Prerequisites
=============
GTK+ requires the following packages:
- The GLib, Pango, ATK and cairo libraries, available at the same
location as GTK+. GTK+ @GTK_VERSION@ requires at least GLib 2.12,
Pango 1.13, ATK 1.9 and cairo 1.2.
- The TIFF, PNG, and JPEG image loading libraries. You most
likely have these installed on your system already. If not
these libraries are available from:
http://www.libtiff.org/
http://www.libpng.org/
http://www.ijg.org/
libtiff must be version 3.6.0 or higher.
Simple install procedure
========================
% gzip -cd gtk+-@GTK_VERSION@.tar.gz | tar xvf - # unpack the sources
% cd gtk+-@GTK_VERSION@ # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]
% make install # install GTK+
The Details
===========
Complete information about installing GTK+ and related libraries can be found
in the file:
docs/reference/gtk/html/gtk-building.html
Or online at:
http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html

12
gtk-2-12/MAINTAINERS Normal file
View File

@@ -0,0 +1,12 @@
Matthias Clasen
E-mail: mclasen@redhat.com
Userid: matthiasc
Tim Janik
E-mail: timj@gtk.org
Userid: timj
Note that a lot of people are contributing to GTK+, and some parts of it
are technically maintained by other people. The people listed above are
meant as contacts for administrative questions such as cvs accounts. Other
questions are best directed to the mailing list gtk-devel-list@gnome.org.

199
gtk-2-12/Makefile.am Normal file
View File

@@ -0,0 +1,199 @@
## Makefile.am for GTK+
SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros
# require automake 1.4
AUTOMAKE_OPTIONS = 1.7
EXTRA_DIST = \
HACKING \
makecopyright \
NEWS.pre-1-0 \
ChangeLog.pre-1-0 \
ChangeLog.pre-1-2 \
ChangeLog.pre-2-0 \
ChangeLog.pre-2-2 \
ChangeLog.pre-2-4 \
ChangeLog.pre-2-6 \
ChangeLog.pre-2-8 \
ChangeLog.pre-2-10 \
ChangeLog.gtk-async-file-chooser \
ChangeLog.gtk-printing \
README.commits \
README.win32 \
config.h.win32 \
makefile.msc \
gtk-zip.sh.in \
sanitize-la.sh \
po/README.translators \
po/po2tbl.sed.in \
examples/aspectframe/Makefile \
examples/aspectframe/aspectframe.c \
examples/Makefile \
examples/README.1ST \
examples/extract.awk \
examples/extract.sh \
examples/arrow/Makefile \
examples/arrow/arrow.c \
examples/base/Makefile \
examples/base/base.c \
examples/buttonbox/Makefile \
examples/buttonbox/buttonbox.c \
examples/buttons/Makefile \
examples/buttons/buttons.c \
examples/buttons/info.xpm \
examples/calendar/Makefile \
examples/calendar/calendar.c \
examples/clist/Makefile \
examples/clist/clist.c \
examples/entry/Makefile \
examples/entry/entry.c \
examples/eventbox/Makefile \
examples/eventbox/eventbox.c \
examples/filesel/Makefile \
examples/filesel/filesel.c \
examples/gtkdial/Makefile \
examples/gtkdial/dial_test.c \
examples/gtkdial/gtkdial.c \
examples/gtkdial/gtkdial.h \
examples/helloworld/Makefile \
examples/helloworld/helloworld.c \
examples/helloworld2/Makefile \
examples/helloworld2/helloworld2.c \
examples/label/Makefile \
examples/label/label.c \
examples/list/Makefile \
examples/list/list.c \
examples/menu/Makefile \
examples/menu/menu.c \
examples/menu/itemfactory.c \
examples/notebook/Makefile \
examples/notebook/notebook.c \
examples/packbox/Makefile \
examples/packbox/packbox.c \
examples/paned/Makefile \
examples/paned/paned.c \
examples/pixmap/Makefile \
examples/pixmap/pixmap.c \
examples/progressbar/Makefile \
examples/progressbar/progressbar.c \
examples/radiobuttons/Makefile \
examples/radiobuttons/radiobuttons.c \
examples/rangewidgets/Makefile \
examples/rangewidgets/rangewidgets.c \
examples/rulers/Makefile \
examples/rulers/rulers.c \
examples/scribble-simple/Makefile \
examples/scribble-simple/scribble-simple.c \
examples/scribble-xinput/Makefile \
examples/scribble-xinput/scribble-xinput.c \
examples/scrolledwin/Makefile \
examples/scrolledwin/scrolledwin.c \
examples/selection/Makefile \
examples/selection/gettargets.c \
examples/selection/setselection.c \
examples/statusbar/Makefile \
examples/statusbar/statusbar.c \
examples/table/Makefile \
examples/table/table.c \
examples/text/Makefile \
examples/text/text.c \
examples/tictactoe/Makefile \
examples/tictactoe/tictactoe.c \
examples/tictactoe/tictactoe.h \
examples/tictactoe/ttt_test.c \
examples/tree/Makefile \
examples/tree/tree.c \
examples/wheelbarrow/Makefile \
examples/wheelbarrow/wheelbarrow.c \
examples/fixed/fixed.c \
examples/fixed/Makefile \
examples/frame/frame.c \
examples/frame/Makefile \
examples/spinbutton/spinbutton.c \
examples/spinbutton/Makefile \
examples/find-examples.sh
GDKTARGET=@gdktarget@
## Copy .pc files to target-specific names
gtk+-$(GDKTARGET)-2.0.pc: gtk+-2.0.pc
rm -f gtk+-$(GDKTARGET)-2.0.pc && \
cp gtk+-2.0.pc gtk+-$(GDKTARGET)-2.0.pc
gdk-$(GDKTARGET)-2.0.pc: gdk-2.0.pc
rm -f gdk-$(GDKTARGET)-2.0.pc && \
cp gdk-2.0.pc gdk-$(GDKTARGET)-2.0.pc
gtk+-$(GDKTARGET)-2.0-uninstalled.pc: gtk+-2.0-uninstalled.pc
rm -f gtk+-$(GDKTARGET)-2.0-uninstalled.pc && \
cp gtk+-2.0-uninstalled.pc gtk+-$(GDKTARGET)-2.0-uninstalled.pc
gdk-$(GDKTARGET)-2.0-uninstalled.pc: gdk-2.0-uninstalled.pc
rm -f gdk-$(GDKTARGET)-2.0-uninstalled.pc && \
cp gdk-2.0-uninstalled.pc gdk-$(GDKTARGET)-2.0-uninstalled.pc
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA= gdk-pixbuf-2.0.pc gdk-$(GDKTARGET)-2.0.pc gtk+-$(GDKTARGET)-2.0.pc
if OS_UNIX
pkgconfig_DATA += gtk+-unix-print-2.0.pc
endif
DISTCLEANFILES = \
gtk+-unix-print-2.0.pc \
gtk+-$(GDKTARGET)-2.0.pc \
gdk-$(GDKTARGET)-2.0.pc \
gtk+-$(GDKTARGET)-2.0-uninstalled.pc \
gdk-$(GDKTARGET)-2.0-uninstalled.pc
## copy the default target for this platform to gdk-2.0.pc and gtk+-2.0.pc
DEFAULT_GDKTARGET=x11
install-data-hook:
(cd $(DESTDIR)$(pkgconfigdir) && \
test -f gdk-$(DEFAULT_GDKTARGET)-2.0.pc && \
test -f gtk+-$(DEFAULT_GDKTARGET)-2.0.pc && \
rm -f gdk-2.0.pc && cp -f gdk-$(DEFAULT_GDKTARGET)-2.0.pc gdk-2.0.pc && \
rm -f gtk+-2.0.pc && cp -f gtk+-$(DEFAULT_GDKTARGET)-2.0.pc gtk+-2.0.pc) || \
(cd $(DESTDIR)$(pkgconfigdir) && \
rm -f gdk-2.0.pc && cp -f gdk-$(GDKTARGET)-2.0.pc gdk-2.0.pc && \
rm -f gtk+-2.0.pc && cp -f gtk+-$(GDKTARGET)-2.0.pc gtk+-2.0.pc)
uninstall-local:
rm -f $(DESTDIR)$(pkgconfigdir)/gdk-2.0.pc
rm -f $(DESTDIR)$(pkgconfigdir)/gtk+-2.0.pc
dist-hook:
if test -f $(srcdir)/INSTALL.in && test -f $(srcdir)/README.in ; then \
CONFIG_FILES="INSTALL:$(srcdir)/INSTALL.in README:$(srcdir)/README.in" \
CONFIG_HEADERS= \
$(SHELL) config.status \
&& cp INSTALL README $(distdir) ; \
fi
.PHONY: files release sanity snapshot
files:
@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
echo $$p; \
done
@for subdir in $(SUBDIRS); do \
files=`cd $$subdir; $(MAKE) files | grep -v "make\[[1-9]\]"`; \
for file in $$files; do \
echo $$subdir/$$file; \
done; \
done
release:
rm -rf .deps */.deps
$(MAKE) distcheck
sanity:
./sanity_check $(VERSION)
snapshot:
$(MAKE) dist distdir=$(PACKAGE)-snap`date +"%Y%m%d"`
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man --disable-rebuilds

4373
gtk-2-12/NEWS Normal file

File diff suppressed because it is too large Load Diff

124
gtk-2-12/NEWS.pre-1-0 Normal file
View File

@@ -0,0 +1,124 @@
Overview of Changes in GTK+ 1.0.0:
* A few bug fixes.
Overview of Changes in GTK+ 0.99.10:
* Lots of bug fixes
* Documentation improvements
* Better looking handlebox
* A few convenience functions
Overview of Changes in GTK+ 0.99.9:
* Added examples directory, even more examples soon
* Added optional word wrap to gtktext
* Changes to gtkhandlebox
* Lots of bug fixes
Overview of Changes in GTK+ 0.99.8:
* Compilation and configuration fixes
* DND Fixes
* New test in testgtk: cursors
* Tutorial updates/additions
* Few more FAQ additions
* More prep for 1.0
Overview of Changes in GTK+ 0.99.7:
* This release is mainly because 0.99.6 did not compile completely
due to a missing file.
* Fixes to Gtk's quit handlers.
Overview of Changes in GTK+ 0.99.6:
* Intermediate release to become 1.0.
* More signedness corrections for handler functions in gtkmain.h.
* Semantics of GtkWidget::delete_event changed.
* Documentation updates.
* Inclusion of Gtk tutorial.
* Implementation of a new shutdown method for GtkObject's executed prior to
actual destruction. WARNING: this breaks binary compatibility, programs using
Gtk need to be recompiled.
* Clean ups due to compiler warnings.
* Various widget fixes.
Overview of Fixes in GTK+ 0.99.5:
* Signal signedness and naming corrections
* rc/style fixes
* text, entry widget fixes
* gtkeditable fixes
* scrollbar flickering fixed
* check casts are more descriptive
* DND fixes
* FAQ updates
* Bug fixes
Overview of Changes in GTK+ 0.99.4:
* Reference counting revolution integrated.
Refer to docs/refcounting.txt on this issue.
* Implementation of a decent debugging system, you would want
to export GTK_DEBUG=objects if you are going to develop gtk applications,
refer to docs/debugging.txt for further information.
* Additions on the signal code for querying information about certain signals,
and pending handlers of signals.
* Support for user signals, and major changes to internal signal handler
handling for proper signal removal and invokation of after signals.
* Additional signals for various widgets e.g, GtkHandleBox::child_attached,
GtkHandleBox::child_detached, GtkWidget::style_set, GtkWidget::parent_set.
* GtkTooltips became a true descendant of GtkObject via derivation from
GtkData and facilitates an extra tip string which can be used as e.g. an
index into context help.
* Split up of the widget/object flags into a private and a public portion,
consult docs/widget_system.txt on this.
* Support for hot keys on gtk programs via gtk_key_snooper_install().
* Reimplementation of the *_interp functions as *_full functions to provide
simple callback functions as well.
* Idle functions are now prioritized.
* Many enhancements to GtkNotebook.
* New widget GtkSpinButton, check out testgtk.
* New widget GtkTipsQuery for letting the user query tooltips of widgets.
* Addition of GtkEditable base widget to encapsulate selection and
clipboard handling. (GtkEntry and GtkText use this)
* Text widget more complete.
* Additions to GtkStatusBar to make it complete.
* Gdk now supports regions.
* Access masks for widget arguments (GTK_ARG_READABLE/GTK_ARG_WRITABLE).
* Function replacements:
g_string_hash() -> g_str_hash()
g_string_equal() -> g_str_equal()
gtk_tooltips_set_tips() -> gtk_tooltips_set_tip()
* Support for quit handlers in gtk_main().
* Motif window mangaer hints support.
* Widget arguments are now flagged for readability/writability.
* Additions to documentation.
* Various FAQ updates. (FAQ now included)
* Clean ups and many many bug fixes by a lot of people all over the place.
* New, long and descriptive ChangeLog entries for bored readers ;)
Overview of Changes in GTK+ 0.99.3:
* Filesel enhancement / stability changes
* New widget, gtkcombo
* Widgets in the toolbar do not get the focus
* New widget, gtkstatusbar (still in-progress)
* g_string_equal renamed g_str_equal
* g_string_hash renamed g_str_hash
* new gtkbox functions to allow modification of the child
linkage after the widget tree is setup
* gtk_*_get_arg() and gtk_*_set_arg() fixes and implementations
* DND changes/fixes
* Entry widget now has set_max_length function
* Handlebox widget changes/fixes
* Some work on text widget (still in-progress)
* Now the toolbar supports arbitrary widgets as well
* CList has resizable columns again
* CList now looks consistant with scrolled windows
* Remove flickering from entry widget
* Added switch_page signal to notebook widget
* Documentation additions
* Other bug fixes...

369
gtk-2-12/README Normal file
View File

@@ -0,0 +1,369 @@
General Information
===================
This is GTK+ version 2.12.8. 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.
GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without any
license fees or royalties.
The official ftp site is:
ftp://ftp.gtk.org/pub/gtk
The official web site is:
http://www.gtk.org/
Information about mailing lists can be found at
http://www.gtk.org/mailinglists.html
Installation
============
See the file 'INSTALL'
Release notes for 2.12
======================
* gtk_about_dialog_get/set_name() were deprecated in favour of
gtk_about_dialog_get/set_program_name(), the GtkAboutDialog now uses the
"program-name" property instead of the conflicting "name" property.
* The gdk-pixbuf tiff loader now requires libtiff 3.6.0 or later.
* Support for Windows 9x/ME has officially been removed. It hasn't worked
since 2.6 anyway.
* The GtkTextBufferTargetInfo enumeration values have been changed from
G_MAXUINT-0, G_MAXUINT-1, G_MAXUINT-2, etc, to -1, -2, -3 to stay within
ANSI C limits.
* A change in the handling of _NET_WM_USER_TIME properties on toplevel
windows can cause deadlock problems with window managers that are using
GDK for drawing decorations. In particular, metacity <= 2.18.0 is affected
by this. The problem has been fixed in metacity 2.18.1.
* Semi-private GtkTextLayout api has changed: new GtkTextLayout method
invalidate_cursors(), and new functions gtk_text_layout_invalidate_cursors()
and gtk_text_layout_cursors_changed(), which should be used in place of
gtk_text_layout_invalidate() and gtk_text_layout_changed() if invalidation
is due to marks moved or changed selection; new GtkTextLineDisplay structure
member. Source compatibility is preserved; binary compatibility may break
only if GtkTextLineDisplay structure was created on stack or as a part
of another structure (in particular GnomeCanvas and its clones do not need
recompiling).
* Another new signal has been added to GtkNotebook. The new signal
is called create-window, so this name can no longer be used for signals
in objects derived from GtkNotebook.
* The gtk_notebook_set/get_group_id() functions were found to be insufficient
and have been deprecated in favour of gtk_notebook_set/get_group().
* The move-focus signal has been moved to GtkWidget, to unify the
various implementations of this signal in specific widgets. Great care
has been taken to make sure that all code using this signal continues
to work.
* An unused and hardly visible GtkFrame has been removed from the menu
widget hierarchy when GtkComboBox::appears-as-list style property is
set. Any RC file applying a different style to any widget below the
widget path "gtk-combobox-popup-window.GtkFrame" should take into
account that the frame no longer exists.
* The external print preview application used by GtkPrintOperationPreview
is now passed the print settings on the command line with the
--print-settings parameter pointing to a temp file containing the
settings. The preview application assumes ownership of the file and
should delete it once it does not need it anymore. The --print-settings
commandline option is understood by Evince 0.9.0 and newer. To use a
different print preview application, change the gtk-print-preview-command
setting in your gtkrc file, e.g. gtk-print-preview-command = "ggv %f"
* GtkMenuShell is now defined as an abstract type. It was already
documented as an abstract class, and there is little reason to
instantiate it.
* The GtkTooltips struct (this is the old tooltips API) is now considered
private. Code that used to access this struct, in particular the
tips_data_list field, will need to change. All of the old tooltips
API has been deprecated in favour of a new implementation and
API. This affects all of the gtk_tooltips_ functions, and functions
which take a GtkTooltips argument, such as gtk_tool_item_set_tooltip()
and gtk_menu_tool_button_set_arrow_tooltip().
* The memory management of the GtkRecentManager object has been changed,
as using the screen didn't guarantee that the singleton instance was
correctly destroyed. The screen-related functions have been deprecated,
and should not be used anymore; the GtkRecentManager instance returned by
the gtk_recent_manager_get_default() function is guaranteed to be valid
for the entire lifetime of an application.
* A number of interfaces that have been superseded by newer interfaces for
a long time have finally been deprecated. This includes
gtk_widget_ref/unref(), gtk_rc_style_ref/unref() and the old file selector.
* The various coordinate systems in use in GtkTreeView widgets have
been clarified in the documentation, and in the cause of doing so,
the functions gtk_tree_view_widget_to_tree_coords() and
gtk_tree_view_tree_to_widget_coords() have been deprecated in
favour of a new family of gtk_tree_view_convert_ functions.
* gtk_menu_item_remove_submenu() has been deprecated in favour of
gtk_menu_item_set_submenu (..., NULL).
* gtk_default_draw_check() has been fixed to really decrease the
indicator size by one pixel to ensure an odd size instead of
accidentially increasing it.
Consequently, gtk_cell_renderer_toggle_render() could be fixed to
not subtract 1 from the size passed to gtk_paint_option(), which
was just a workaround for above off-by-two for even sizes (theme
engines now get the real indicator size passed).
The default toggle size of GtkCheckMenuItem and GtkCellRendererToggle
has been changed to 13 to be consistent with GtkCheckButton.
The only visible change with default settings is that the indicator in
GtkCellRendererToggle has changed its size from 11 to 13 and is now
consistent with menus and toggle buttons.
* GTK+ has always required that gtk_init() (or a variant thereof) is
called before any other GTK+ function. Some applications call functions
like gtk_clipboard_get() to check if they need to call gtk_init(),
anyway. A change in GLib 2.14 has recently broken this unsupported
practise. It is worth pointing out that calling gtk_init() twice
does no harm.
Release notes for 2.10
======================
* The hexadecimal Unicode input feature has been reworked. It no longer
blocks the use of the sixteen Ctrl-Shift-<hex digit> key sequences. Now
it only uses Ctrl-Shift-u.
* A memory leak in GtkStyle handling has been fixed. This may expose bugs
in third-party widgets which forget to call gtk_style_attach() in their
realize functions.
* Range widgets like GtkScrollbar now render their arrows insensitive
when the slider is at the end. Applications which react to arrow
clicks even if the slider is at the end may want to use the new
gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
prevent the arrows from being rendered insensitive.
* GtkObject now uses the "floating reference" support in GObject.
GTK_OBJECT_IS_FLOATING() will still work, but direct checking
of the GTK_FLOATING flag will no longer detect the floating
reference. Details about floating references can be found in the docs:
http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref
* Accelerators like (_F) are now stripped from labels when they are
displayed in toolbars. If this is not wanted, the feature can be
suppressed by inserting a Unicode control character, e.g ZWNJ.
* The pixbuf theme engine can now customize expanders (in GtkTreeView
and GtkExpander) and resize grips, using the new EXPANDER and
RESIZE_GRIP function values.
* Dialogs created by gtk_about_dialog_new() no longer hide automatically
when the user clicks close. It is the applications responsibility to
hide or destroy the dialog.
* Several new signals have been added to GtkNotebook. Care has been taken
to choose signal names which do not collide with signals added by well-known
derived classes. The names which can no longer be used for signals in
objects derived from GtkNotebook are page-reordered, page-removed and
page-added.
* Due to the interface changes in the file chooser backend interface,
the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem
backends have to be ported to the new interface, other modules, such as
theme engines, input method modules or pixbuf loaders have to be rebuilt
so that they are installed in the right place for GTK+ to find them.
Release notes for 2.8
=====================
* GTK+ 2.8 and Pango 1.10 require the cairo library.
* The default theme has been renamed to "Raleigh". Existing configurations
specifying the "Default" theme name should still work.
* The GtkTreeView::enable-search property has been changed to control
only typeahead search, not the C-f keybinding to start an interactive
search. To turn off interactive searching completely, you have to
set GtkTreeView::search-column to -1.
* The restriction on using the same cell renderer in multiple columns
of a GtkTreeView is now more strictly enforced.
* In GTK+ 2.8, GtkCalendar uses nl_langinfo() (if available) to determine
the first day of the week. Thus, it is possible to select the first day
of the week independently from the language, by setting LC_TIME.
* In GTK+ 2.8, the gtk-update-icon-cache utility includes image data
in the icon caches, which will make the icon cache files larger than
the one produced by GTK+ 2.6. This change will reduce the memory
overhead of icon themes at runtime, since all GTK+ applications can
share the image data in memory.
* In 2.8, GDK emits GdkEventGrabBroken events when a keyboard or pointer
grab is broken. On X11, this can happen if the same application grabs
again, or if the window used for the grab becomes unviewable. It happens
more often on Win32. Applications which use grabs should pay attention
to these events and do the necessary cleanups when the grab is lost.
* The GIOChannel code for sockets on win32 has been rewritten.
Applications who make non-trivial use of GIOChannels on win32 should
be watched for possible problems.
* GLib 2.8 uses atomic operations to implement reference counting, thus
g_object_ref/unref, g_closure_ref/sink/unref and g_iochannel_ref/unref
can be used without locking in multithreaded applications. Note that
other modifications, like concurrent setting of properties still require
locking.
* g_convert() and related character set conversion functions have been
fixed to emit pending shift states and to not cache iconv descriptors
across multiple calls, since that is problematic for some encodings.
Note that these functions are not suitable for streaming conversions;
use g_iconv() to do streaming conversion.
Release notes for 2.6
=====================
* GTK+ 2.6 supports clipboard persistency. To make use of this feature,
a clipboard manager following the specification at
http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec
must be running. A sample implementation of such a clipboard manager
is available at
http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz
Applications can use the function gdk_display_supports_clipboard_persistence()
to find out if clipboard persistence is available.
* Notification on clipboard ownership changes via GdkOwnerChange events
requires the XFIXES X extension. Applications can use the function
gdk_display_supports_selection_notification() to find out if ownerchip
change notification is available.
* The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme
specification. Setting the XDG_DATA_DIRS environtment variable may be
necessary if your icons aren't installed in the default location
/usr/share/icons.
* The icon theme code in GTK+ 2.6 can make use of mmap()able cache files
to avoid a lot of disk searching overhead. GTK+ includes a utility named
gtk-update-icon-cache to generate these cache files. For further details,
see the gtk-update-icon-cache man page or the GTK+ documentation.
* To reduce code size and improve efficiency, GTK+, when compiled
with the GNU toolchain, has separate internal and external entry
points for exported functions. The internal names, which begin with
IA__, may be seen when debugging a GTK+ program.
* The following functions have been deprecated in GTK+ 2.6:
gdk_pango_context_set_colormap
gtk_cell_renderer_editing_canceled
* The new GtkFileChooser widget emphasizes simplicity and thus does
not provide a navigation entry by default when opening files.
Experienced command line users will likely want to make heavy use of
the location dialog brought up by the Control-L key shortcut.
* The GTK+ libraries use an '_' prefix to indicate private symbols that
must not be used by applications. On some platforms, symbols beginning
with prefixes such as _gtk, _gdk, and _pango will be exported
from the library, on others not. In no case can applications
use these private symbols. In addition to that, GTK+ 2.6 makes several
symbols private which were not in any installed header files and
were never intended to be exported.
* The gdk_pixbuf_xlib library included in the contrib/ directory
and the framebuffer GDK backend included in the gdk/linux-fb directory
of GTK+ are provided on an as-is basis and have not been tested at all.
No guarantees about the degree of workingness or about future
compatibility are provided.
* On Unix, the assumption of GLib and GTK+ by default is that filenames on
the filesystem are encoded in UTF-8 rather than the encoding of the locale;
the GTK+ developers consider that having filenames whose interpretation
depends on the current locale is fundamentally a bad idea.
If you have filenames encoded in the encoding of your locale, then you
may want to set the G_FILENAME_ENCODING environment variable:
G_FILENAME_ENCODING=@locale
export G_FILENAME_ENCODING
(Earlier versions of GLib 2.x required a different environment variable
setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this
is still supported, but G_FILENAME_ENCODING is preferred.)
Best integration of GTK+ 2.6 with the environment is achieved by
using a UTF-8 locale.
On Windows, filenames passed to GTK+ should always be in UTF-8, as
in GLib 2.6. This is different than in previous versions of GTK+
where the system codepage was used. As in GLib, for DLL ABI
stability, applications built against previous versions of GTK+ will
use entry points providing the old semantics.
When compiling against GTK+ 2.6, applications intended to be
portable to Windows must take the UTF-8 file name encoding into
consideration, and use the gstdio wrappers to access files whose
names have been constructed from strings returned from GTK+ or GLib.
How to report bugs
==================
Bugs should be reported to the GNOME bug tracking system.
(http://bugzilla.gnome.org, product gtk+.) You will need to create an
account for yourself.
In the bug report please include:
* Information about your system. For instance:
- What operating system and version
- What version of X
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with one of the tests or demos built with GTK+,
such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise,
please include a short test program that exhibits the behavior. As a
last resort, you can also provide a pointer to a larger piece of software
that can be downloaded.
* If the bug was a crash, the exact text that was printed out when the
crash occured.
* Further information such as stack traces may be useful, but is not
necessary. If you do send a stack trace, and the error is an X error,
it will be more useful if the stacktrace is produced running the test
program with the --sync command line option.
Patches
=======
Patches should also be submitted to bugzilla.gnome.org. If the patch
fixes an existing bug, add the patch as an attachment to that bug
report.
Otherwise, enter a new bug report that describes the patch, and attach
the patch to that bug report.
Bug reports containing patches should include the PATCH keyword in their
keyword fields. If the patch adds to or changes the GTK+ programming
interface, the API keyword should also be included.
Patches should be in unified diff form. (The -u option to GNU diff.)

54
gtk-2-12/README.commits Normal file
View File

@@ -0,0 +1,54 @@
GTK+ is part of the GNOME Subversion repository. At the current time, any
person with write access to the GNOME repository, can make changes to
GTK+. This is a good thing, in that it encourages many people to work
on GTK+, and progress can be made quickly. However, GTK+ is a fairly
large and complicated package that many other things depend on, so to
avoid unnecessary breakage, and to take advantage of the knowledge
about GTK+ that has been built up over the last 4 years, we'd like
to ask people commiting to GTK+ to follow a few rules:
0) Ask first. If your changes are major, or could possibly break existing
code, you should always ask. If your change is minor and you've
been working on GTK+ for a while it probably isn't necessary
to ask. But when in doubt, ask. Even if your change is correct,
somebody may know a better way to do things.
If you are making changes to GTK+, you should be subscribed
to gtk-devel-list@gnome.org. (Subscription address:
gtk-devel-list-request@gnome.org.) This is a good place to ask
about intended changes.
#gtk+ on GIMPNet (irc.gimp.org, irc.us.gimp.org, irc.eu.gimp.org, ...)
is also a good place to find GTK+ developers to discuss changes with,
however, email to gtk-devel-list is the most certain and preferred
method.
1) Ask _first_.
2) There must be a ChangeLog for every commit. (If you discover that
you only committed half the files you meant to and need to fix that
up, or something, you don't need a new ChangeLog entry. But in general,
ChangeLog entries are mandatory.) Changes without ChangeLog entries
will be reverted.
3) There _must_ be a ChangeLog for every commit.
Notes:
* If you are going to be changing many files in an experimental fashion,
it probably is a good idea to create a separate branch for your changes.
* The ChangeLog entries should preferably match in date format
with the existing entries. You can set how emacs does this
by using customize mode:
- M-x customize
- set Programming/Tools/ChangeLog/Add Log Time Format to
'Old Format'
Or, set the add-log-time-format to 'current-time-string in
your .emacs file.
Owen Taylor
13 Aug 1998
17 Apr 2001

369
gtk-2-12/README.in Normal file
View File

@@ -0,0 +1,369 @@
General Information
===================
This is GTK+ version @GTK_VERSION@. 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.
GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without any
license fees or royalties.
The official ftp site is:
ftp://ftp.gtk.org/pub/gtk
The official web site is:
http://www.gtk.org/
Information about mailing lists can be found at
http://www.gtk.org/mailinglists.html
Installation
============
See the file 'INSTALL'
Release notes for 2.12
======================
* gtk_about_dialog_get/set_name() were deprecated in favour of
gtk_about_dialog_get/set_program_name(), the GtkAboutDialog now uses the
"program-name" property instead of the conflicting "name" property.
* The gdk-pixbuf tiff loader now requires libtiff 3.6.0 or later.
* Support for Windows 9x/ME has officially been removed. It hasn't worked
since 2.6 anyway.
* The GtkTextBufferTargetInfo enumeration values have been changed from
G_MAXUINT-0, G_MAXUINT-1, G_MAXUINT-2, etc, to -1, -2, -3 to stay within
ANSI C limits.
* A change in the handling of _NET_WM_USER_TIME properties on toplevel
windows can cause deadlock problems with window managers that are using
GDK for drawing decorations. In particular, metacity <= 2.18.0 is affected
by this. The problem has been fixed in metacity 2.18.1.
* Semi-private GtkTextLayout api has changed: new GtkTextLayout method
invalidate_cursors(), and new functions gtk_text_layout_invalidate_cursors()
and gtk_text_layout_cursors_changed(), which should be used in place of
gtk_text_layout_invalidate() and gtk_text_layout_changed() if invalidation
is due to marks moved or changed selection; new GtkTextLineDisplay structure
member. Source compatibility is preserved; binary compatibility may break
only if GtkTextLineDisplay structure was created on stack or as a part
of another structure (in particular GnomeCanvas and its clones do not need
recompiling).
* Another new signal has been added to GtkNotebook. The new signal
is called create-window, so this name can no longer be used for signals
in objects derived from GtkNotebook.
* The gtk_notebook_set/get_group_id() functions were found to be insufficient
and have been deprecated in favour of gtk_notebook_set/get_group().
* The move-focus signal has been moved to GtkWidget, to unify the
various implementations of this signal in specific widgets. Great care
has been taken to make sure that all code using this signal continues
to work.
* An unused and hardly visible GtkFrame has been removed from the menu
widget hierarchy when GtkComboBox::appears-as-list style property is
set. Any RC file applying a different style to any widget below the
widget path "gtk-combobox-popup-window.GtkFrame" should take into
account that the frame no longer exists.
* The external print preview application used by GtkPrintOperationPreview
is now passed the print settings on the command line with the
--print-settings parameter pointing to a temp file containing the
settings. The preview application assumes ownership of the file and
should delete it once it does not need it anymore. The --print-settings
commandline option is understood by Evince 0.9.0 and newer. To use a
different print preview application, change the gtk-print-preview-command
setting in your gtkrc file, e.g. gtk-print-preview-command = "ggv %f"
* GtkMenuShell is now defined as an abstract type. It was already
documented as an abstract class, and there is little reason to
instantiate it.
* The GtkTooltips struct (this is the old tooltips API) is now considered
private. Code that used to access this struct, in particular the
tips_data_list field, will need to change. All of the old tooltips
API has been deprecated in favour of a new implementation and
API. This affects all of the gtk_tooltips_ functions, and functions
which take a GtkTooltips argument, such as gtk_tool_item_set_tooltip()
and gtk_menu_tool_button_set_arrow_tooltip().
* The memory management of the GtkRecentManager object has been changed,
as using the screen didn't guarantee that the singleton instance was
correctly destroyed. The screen-related functions have been deprecated,
and should not be used anymore; the GtkRecentManager instance returned by
the gtk_recent_manager_get_default() function is guaranteed to be valid
for the entire lifetime of an application.
* A number of interfaces that have been superseded by newer interfaces for
a long time have finally been deprecated. This includes
gtk_widget_ref/unref(), gtk_rc_style_ref/unref() and the old file selector.
* The various coordinate systems in use in GtkTreeView widgets have
been clarified in the documentation, and in the cause of doing so,
the functions gtk_tree_view_widget_to_tree_coords() and
gtk_tree_view_tree_to_widget_coords() have been deprecated in
favour of a new family of gtk_tree_view_convert_ functions.
* gtk_menu_item_remove_submenu() has been deprecated in favour of
gtk_menu_item_set_submenu (..., NULL).
* gtk_default_draw_check() has been fixed to really decrease the
indicator size by one pixel to ensure an odd size instead of
accidentially increasing it.
Consequently, gtk_cell_renderer_toggle_render() could be fixed to
not subtract 1 from the size passed to gtk_paint_option(), which
was just a workaround for above off-by-two for even sizes (theme
engines now get the real indicator size passed).
The default toggle size of GtkCheckMenuItem and GtkCellRendererToggle
has been changed to 13 to be consistent with GtkCheckButton.
The only visible change with default settings is that the indicator in
GtkCellRendererToggle has changed its size from 11 to 13 and is now
consistent with menus and toggle buttons.
* GTK+ has always required that gtk_init() (or a variant thereof) is
called before any other GTK+ function. Some applications call functions
like gtk_clipboard_get() to check if they need to call gtk_init(),
anyway. A change in GLib 2.14 has recently broken this unsupported
practise. It is worth pointing out that calling gtk_init() twice
does no harm.
Release notes for 2.10
======================
* The hexadecimal Unicode input feature has been reworked. It no longer
blocks the use of the sixteen Ctrl-Shift-<hex digit> key sequences. Now
it only uses Ctrl-Shift-u.
* A memory leak in GtkStyle handling has been fixed. This may expose bugs
in third-party widgets which forget to call gtk_style_attach() in their
realize functions.
* Range widgets like GtkScrollbar now render their arrows insensitive
when the slider is at the end. Applications which react to arrow
clicks even if the slider is at the end may want to use the new
gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
prevent the arrows from being rendered insensitive.
* GtkObject now uses the "floating reference" support in GObject.
GTK_OBJECT_IS_FLOATING() will still work, but direct checking
of the GTK_FLOATING flag will no longer detect the floating
reference. Details about floating references can be found in the docs:
http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref
* Accelerators like (_F) are now stripped from labels when they are
displayed in toolbars. If this is not wanted, the feature can be
suppressed by inserting a Unicode control character, e.g ZWNJ.
* The pixbuf theme engine can now customize expanders (in GtkTreeView
and GtkExpander) and resize grips, using the new EXPANDER and
RESIZE_GRIP function values.
* Dialogs created by gtk_about_dialog_new() no longer hide automatically
when the user clicks close. It is the applications responsibility to
hide or destroy the dialog.
* Several new signals have been added to GtkNotebook. Care has been taken
to choose signal names which do not collide with signals added by well-known
derived classes. The names which can no longer be used for signals in
objects derived from GtkNotebook are page-reordered, page-removed and
page-added.
* Due to the interface changes in the file chooser backend interface,
the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem
backends have to be ported to the new interface, other modules, such as
theme engines, input method modules or pixbuf loaders have to be rebuilt
so that they are installed in the right place for GTK+ to find them.
Release notes for 2.8
=====================
* GTK+ 2.8 and Pango 1.10 require the cairo library.
* The default theme has been renamed to "Raleigh". Existing configurations
specifying the "Default" theme name should still work.
* The GtkTreeView::enable-search property has been changed to control
only typeahead search, not the C-f keybinding to start an interactive
search. To turn off interactive searching completely, you have to
set GtkTreeView::search-column to -1.
* The restriction on using the same cell renderer in multiple columns
of a GtkTreeView is now more strictly enforced.
* In GTK+ 2.8, GtkCalendar uses nl_langinfo() (if available) to determine
the first day of the week. Thus, it is possible to select the first day
of the week independently from the language, by setting LC_TIME.
* In GTK+ 2.8, the gtk-update-icon-cache utility includes image data
in the icon caches, which will make the icon cache files larger than
the one produced by GTK+ 2.6. This change will reduce the memory
overhead of icon themes at runtime, since all GTK+ applications can
share the image data in memory.
* In 2.8, GDK emits GdkEventGrabBroken events when a keyboard or pointer
grab is broken. On X11, this can happen if the same application grabs
again, or if the window used for the grab becomes unviewable. It happens
more often on Win32. Applications which use grabs should pay attention
to these events and do the necessary cleanups when the grab is lost.
* The GIOChannel code for sockets on win32 has been rewritten.
Applications who make non-trivial use of GIOChannels on win32 should
be watched for possible problems.
* GLib 2.8 uses atomic operations to implement reference counting, thus
g_object_ref/unref, g_closure_ref/sink/unref and g_iochannel_ref/unref
can be used without locking in multithreaded applications. Note that
other modifications, like concurrent setting of properties still require
locking.
* g_convert() and related character set conversion functions have been
fixed to emit pending shift states and to not cache iconv descriptors
across multiple calls, since that is problematic for some encodings.
Note that these functions are not suitable for streaming conversions;
use g_iconv() to do streaming conversion.
Release notes for 2.6
=====================
* GTK+ 2.6 supports clipboard persistency. To make use of this feature,
a clipboard manager following the specification at
http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec
must be running. A sample implementation of such a clipboard manager
is available at
http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz
Applications can use the function gdk_display_supports_clipboard_persistence()
to find out if clipboard persistence is available.
* Notification on clipboard ownership changes via GdkOwnerChange events
requires the XFIXES X extension. Applications can use the function
gdk_display_supports_selection_notification() to find out if ownerchip
change notification is available.
* The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme
specification. Setting the XDG_DATA_DIRS environtment variable may be
necessary if your icons aren't installed in the default location
/usr/share/icons.
* The icon theme code in GTK+ 2.6 can make use of mmap()able cache files
to avoid a lot of disk searching overhead. GTK+ includes a utility named
gtk-update-icon-cache to generate these cache files. For further details,
see the gtk-update-icon-cache man page or the GTK+ documentation.
* To reduce code size and improve efficiency, GTK+, when compiled
with the GNU toolchain, has separate internal and external entry
points for exported functions. The internal names, which begin with
IA__, may be seen when debugging a GTK+ program.
* The following functions have been deprecated in GTK+ 2.6:
gdk_pango_context_set_colormap
gtk_cell_renderer_editing_canceled
* The new GtkFileChooser widget emphasizes simplicity and thus does
not provide a navigation entry by default when opening files.
Experienced command line users will likely want to make heavy use of
the location dialog brought up by the Control-L key shortcut.
* The GTK+ libraries use an '_' prefix to indicate private symbols that
must not be used by applications. On some platforms, symbols beginning
with prefixes such as _gtk, _gdk, and _pango will be exported
from the library, on others not. In no case can applications
use these private symbols. In addition to that, GTK+ 2.6 makes several
symbols private which were not in any installed header files and
were never intended to be exported.
* The gdk_pixbuf_xlib library included in the contrib/ directory
and the framebuffer GDK backend included in the gdk/linux-fb directory
of GTK+ are provided on an as-is basis and have not been tested at all.
No guarantees about the degree of workingness or about future
compatibility are provided.
* On Unix, the assumption of GLib and GTK+ by default is that filenames on
the filesystem are encoded in UTF-8 rather than the encoding of the locale;
the GTK+ developers consider that having filenames whose interpretation
depends on the current locale is fundamentally a bad idea.
If you have filenames encoded in the encoding of your locale, then you
may want to set the G_FILENAME_ENCODING environment variable:
G_FILENAME_ENCODING=@locale
export G_FILENAME_ENCODING
(Earlier versions of GLib 2.x required a different environment variable
setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this
is still supported, but G_FILENAME_ENCODING is preferred.)
Best integration of GTK+ 2.6 with the environment is achieved by
using a UTF-8 locale.
On Windows, filenames passed to GTK+ should always be in UTF-8, as
in GLib 2.6. This is different than in previous versions of GTK+
where the system codepage was used. As in GLib, for DLL ABI
stability, applications built against previous versions of GTK+ will
use entry points providing the old semantics.
When compiling against GTK+ 2.6, applications intended to be
portable to Windows must take the UTF-8 file name encoding into
consideration, and use the gstdio wrappers to access files whose
names have been constructed from strings returned from GTK+ or GLib.
How to report bugs
==================
Bugs should be reported to the GNOME bug tracking system.
(http://bugzilla.gnome.org, product gtk+.) You will need to create an
account for yourself.
In the bug report please include:
* Information about your system. For instance:
- What operating system and version
- What version of X
- For Linux, what version of the C library
And anything else you think is relevant.
* How to reproduce the bug.
If you can reproduce it with one of the tests or demos built with GTK+,
such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise,
please include a short test program that exhibits the behavior. As a
last resort, you can also provide a pointer to a larger piece of software
that can be downloaded.
* If the bug was a crash, the exact text that was printed out when the
crash occured.
* Further information such as stack traces may be useful, but is not
necessary. If you do send a stack trace, and the error is an X error,
it will be more useful if the stacktrace is produced running the test
program with the --sync command line option.
Patches
=======
Patches should also be submitted to bugzilla.gnome.org. If the patch
fixes an existing bug, add the patch as an attachment to that bug
report.
Otherwise, enter a new bug report that describes the patch, and attach
the patch to that bug report.
Bug reports containing patches should include the PATCH keyword in their
keyword fields. If the patch adds to or changes the GTK+ programming
interface, the API keyword should also be included.
Patches should be in unified diff form. (The -u option to GNU diff.)

117
gtk-2-12/README.win32 Normal file
View File

@@ -0,0 +1,117 @@
The Win32 backend in GTK+ is not as stable or correct as the X11 one.
For prebuilt runtime and developer packages see
http://ftp.gnome.org/pub/gnome/binaries/win32/
Building GTK+ on Win32
======================
First you obviously need developer packages for the compile-time
dependencies: Pango, atk, glib, gettext-runtime, libiconv, libpng,
zlib, libtiff at least. See
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies .
After installing the dependencies, there are two ways to build GTK+
for win32.
1) GNU tools, ./configure && make install
-----------------------------------------
This requires you have mingw and MSYS.
Use the configure script, and the resulting Makefiles (which use
libtool and gcc to do the compilation). I use this myself, but it can
be hard to setup correctly.
The full script I run to build GTK+ 2.10 unpacked from a source
distribution is as below. This is from bulding GTK+ 2.10.9, slightly
edited to make it match this 2.11 development branch. Actually I don't
use any script like this to build the development branch, as I don't
distribute any binaries from development branches.
MOD=gtk+
VER=2.10.9
THIS=$MOD-$VER
HEX=`echo $THIS | md5sum | cut -d' ' -f1`
TARGET=c:/devel/target/$HEX
DEPS="`/devel/src/tml/latest.sh glib atk cairo pango`"
sed -e 's/need_relink=yes/need_relink=no # no way --tml/' <ltmain.sh >ltmain.temp && mv ltmain.temp ltmain.sh
usedev
usemsvs6
MY_PKG_CONFIG_PATH=""
for D in $DEPS; do
PATH=/devel/dist/$D/bin:$PATH
MY_PKG_CONFIG_PATH=/devel/dist/$D/lib/pkgconfig:$MY_PKG_CONFIG_PATH
done
PKG_CONFIG_PATH=$MY_PKG_CONFIG_PATH:$PKG_CONFIG_PATH CC='gcc -mtune=pentium3 -mthreads' CPPFLAGS='-I/opt/gnu/include -I/opt/gnuwin32/include -I/opt/misc/include' LDFLAGS='-L/opt/gnu/lib -L/opt/gnuwin32/lib -L/opt/misc/lib -Wl,--enable-auto-image-base' LIBS=-lintl CFLAGS=-O2 ./configure --with-gdktarget=win32 --enable-debug=yes --disable-gtk-doc --disable-static --prefix=$TARGET &&
libtoolcacheize &&
unset MY_PKG_CONFIG_PATH &&
PATH=/devel/target/$HEX/bin:.libs:$PATH make install &&
(cd $TARGET/bin; strip --strip-unneeded *.dll *.exe) &&
(cd $TARGET/lib/gtk-2.0/2.10.0/loaders; strip --strip-unneeded *.dll) &&
(cd $TARGET/lib/gtk-2.0/2.10.0/immodules; strip --strip-unneeded *.dll) &&
(cd $TARGET/lib/gtk-2.0/2.10.0/engines; strip --strip-unneeded *.dll) &&
PATH=$TARGET/bin:$PATH gdk-pixbuf-query-loaders >$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders &&
grep -v -E 'Automatically generated|Created by|LoaderDir =' <$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders >$TARGET/etc/gtk-2.0/gdk-pixbuf.loaders.temp &&
mv $TARGET/etc/gtk-2.0/gdk-pixbuf.loaders.temp $TARGET/etc/gtk-2.0/gdk-pixbuf.loaders &&
grep -v -E 'Automatically generated|Created by|ModulesPath =' <$TARGET/etc/gtk-2.0/gtk.immodules >$TARGET/etc/gtk-2.0/gtk.immodules.temp &&
mv $TARGET/etc/gtk-2.0/gtk.immodules.temp $TARGET/etc/gtk-2.0/gtk.immodules &&
./gtk-zip.sh &&
(cd /devel/src/tml && zip /tmp/$MOD-dev-$VER.zip make/$THIS.make) &&
manifestify /tmp/$MOD*-$VER.zip
You should not just copy the above blindly. There are some things in
the script that are very specific to *my* build setup on *my* current
machine. For instance the "latest.sh" script, the "usedev" and
"usemsvs6" shell functions, the /devel/dist folder. The above script
is really just meant for reference, to give an idea. You really need
to understand what things like PKG_CONFIG_PATH are and set them up
properly after installing the dependencies before building GTK+.
As you see above, after running configure, one can just say "make
install", like on Unix. A post-build fix is needed, running
gdk-pixbuf-query-loaders once more to get a correct gdk-pixbuf.loaders
file.
2) Microsoft's tools
--------------------
Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
makefile.msc in gdk and gtk. Be prepared to manually edit various
makefile.msc files, and the makefile snippets in build/win32.
Alternative 1 also generates Microsoft import libraries (.lib), if you
have lib.exe available. It might also work for cross-compilation from
Unix.
I use method 1 myself. Hans Breuer has been taking care of the MSVC
makefiles. At times, we disagree a bit about various issues, and for
instance the makefile.msc files might not produce identically named
DLLs and import libraries as the "autoconfiscated" makefiles and
libtool do. If this bothers you, you will have to fix the makefiles.
Using GTK+ on Win32
===================
To use GTK+ on Win32, you also need either one of the above mentioned
compilers. Other compilers might work, but don't count on it. Look for
prebuilt developer packages (DLLs, import libraries, headers) on the
above website.
Multi-threaded use of GTK+ on Win32
===================================
Multi-threaded GTK+ programs might work on Windows in special simple
cases, but not in general. Sorry. If you have all GTK+ and GDK calls
in the same thread, it might work. Otherwise, probably not at
all. Possible ways to fix this are being investigated.
Wintab
======
The tablet support uses the Wintab API. The Wintab development kit is
no longer required. The wintab.h header file is bundled with GTK+
sources. Unfortunately it seems that only Wacom tablets come with
support for the Wintab API nowadays.
--Tor Lillqvist <tml@iki.fi>, <tml@novell.com>

82
gtk-2-12/acconfig.h Normal file
View File

@@ -0,0 +1,82 @@
/* acconfig.h
This file is in the public domain.
Descriptive text for the C preprocessor macros that
the distributed Autoconf macros can define.
No software package will use all of them; autoheader copies the ones
your configure.in uses into your configuration header file templates.
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). Although this order
can split up related entries, it makes it easier to check whether
a given entry is in the file.
Leave the following blank line there!! Autoheader needs it. */
/* Other stuff */
#undef ENABLE_NLS
#undef GTK_COMPILED_WITH_DEBUGGING
#undef HAVE_CATGETS
#undef HAVE_GETTEXT
#undef HAVE_IPC_H
#undef HAVE_LC_MESSAGES
#undef HAVE_PROGRESSIVE_JPEG
#undef HAVE_PWD_H
#undef HAVE_SHM_H
#undef HAVE_STPCPY
#undef HAVE_SYS_SYSINFO_H
#undef HAVE_SYS_SYSTEMINFO_H
#undef HAVE_XSHM_H
#undef HAVE_SHAPE_EXT
#undef HAVE_SOLARIS_XINERAMA
#undef HAVE_SYS_SELECT_H
#undef HAVE_SYS_TIME_H
#undef HAVE_XFREE_XINERAMA
#undef HAVE_XINERAMA
#undef HAVE_XCONVERTCASE
#undef HAVE_XFT
#undef HAVE_SIGSETJMP
#undef NO_FD_SET
#undef RESOURCE_BASE
#undef USE_GMODULE
#undef USE_MMX
#undef USE_MEDIALIB
#undef USE_MEDIALIB25
/* Define to use XKB extension */
#undef HAVE_XKB
/* Define to use shadowfb in the linux-fb port */
#undef ENABLE_SHADOW_FB
/* Define to use a fb manager in the linux-fb port */
#undef ENABLE_FB_MANAGER
#undef XINPUT_NONE
#undef XINPUT_GXI
#undef XINPUT_XFREE
/* Define as the return type of signal handlers (int or void). */
#undef RETSIGTYPE
/* Most machines will be happy with int or void. IRIX requires '...' */
#undef SIGNAL_ARG_TYPE
#undef GETTEXT_PACKAGE
#undef HAVE_CUPS_API_1_2
/* #undef PACKAGE */
/* #undef VERSION */
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). */

79
gtk-2-12/acinclude.m4 Normal file
View File

@@ -0,0 +1,79 @@
# autoconf 2.13 / 2.50 compatibility macro
# GLIB_AC_DIVERT_BEFORE_HELP(STUFF)
# ---------------------------------
# Put STUFF early enough so that they are available for $ac_help expansion.
# Handle both classic (<= v2.13) and modern autoconf
AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP],
[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])],
[ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])],
[AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
$1
AC_DIVERT_POP()])])])
# GTK_ADD_LIB(VAR,LIBNAME)
# ---------------------------------
# Helper macro to add a -lBlah to a variable, avoiding repeats
# Note that this needs to be quoted when used in an enclosing macro
AC_DEFUN([GTK_ADD_LIB],
[ case "$$1 " in
*-l$2[[\ \ ]]*) ;;
*) $1="-l$2 $$1" ;;
esac
])
# Checks the location of the XML Catalog
# Usage:
# JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# Defines XMLCATALOG and XML_CATALOG_FILE substitutions
AC_DEFUN([JH_PATH_XML_CATALOG],
[
# check for the presence of the XML catalog
AC_ARG_WITH([xml-catalog],
AC_HELP_STRING([--with-xml-catalog=CATALOG],
[path to xml catalog to use]),,
[with_xml_catalog=/etc/xml/catalog])
jh_found_xmlcatalog=true
XML_CATALOG_FILE="$with_xml_catalog"
AC_SUBST([XML_CATALOG_FILE])
AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)])
if test -f "$XML_CATALOG_FILE"; then
AC_MSG_RESULT([found])
else
jh_found_xmlcatalog=false
AC_MSG_RESULT([not found])
fi
# check for the xmlcatalog program
AC_PATH_PROG(XMLCATALOG, xmlcatalog, no)
if test "x$XMLCATALOG" = xno; then
jh_found_xmlcatalog=false
fi
if $jh_found_xmlcatalog; then
ifelse([$1],,[:],[$1])
else
ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2])
fi
])
# Checks if a particular URI appears in the XML catalog
# Usage:
# JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
AC_DEFUN([JH_CHECK_XML_CATALOG],
[
AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
if $jh_found_xmlcatalog && \
AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
AC_MSG_RESULT([found])
ifelse([$3],,,[$3
])dnl
else
AC_MSG_RESULT([not found])
ifelse([$4],,
[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
[$4])
fi
])

117
gtk-2-12/autogen.sh Executable file
View File

@@ -0,0 +1,117 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
PROJECT=Gtk+
TEST_TYPE=-d
FILE=gdk
DIE=0
have_libtool=false
if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
libtool_version=`libtoolize --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
case $libtool_version in
1.4*|1.5*)
have_libtool=true
;;
esac
fi
if $have_libtool ; then : ; else
echo
echo "You must have libtool 1.4 installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
DIE=1
fi
(gtkdocize --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have gtk-doc installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/"
DIE=1
}
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
DIE=1
}
if automake-1.7 --version < /dev/null > /dev/null 2>&1 ; then
AUTOMAKE=automake-1.7
ACLOCAL=aclocal-1.7
else
echo
echo "You must have automake 1.7.x installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
DIE=1
fi
if test "$DIE" -eq 1; then
exit 1
fi
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT directory"
exit 1
}
if test -z "$AUTOGEN_SUBDIR_MODE"; then
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
fi
if test -z "$ACLOCAL_FLAGS"; then
acdir=`$ACLOCAL --print-ac-dir`
m4list="glib-2.0.m4 glib-gettext.m4"
for file in $m4list
do
if [ ! -f "$acdir/$file" ]; then
echo "WARNING: aclocal's directory is $acdir, but..."
echo " no file $acdir/$file"
echo " You may see fatal macro warnings below."
echo " If these files are installed in /some/dir, set the ACLOCAL_FLAGS "
echo " environment variable to \"-I /some/dir\", or install"
echo " $acdir/$file."
echo ""
fi
done
fi
rm -rf autom4te.cache
# README and INSTALL are required by automake, but may be deleted by clean
# up rules. to get automake to work, simply touch these here, they will be
# regenerated from their corresponding *.in files by ./configure anyway.
touch README INSTALL
$ACLOCAL $ACLOCAL_FLAGS || exit $?
libtoolize --force || exit $?
gtkdocize || exit $?
autoheader || exit $?
$AUTOMAKE --add-missing || exit $?
autoconf || exit $?
cd $ORIGDIR || exit $?
if test -z "$AUTOGEN_SUBDIR_MODE"; then
$srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@" || exit $?
echo
echo "Now type 'make' to compile $PROJECT."
fi

267
gtk-2-12/config.h.win32.in Normal file
View File

@@ -0,0 +1,267 @@
/* config.h.win32.in. Merged from two versions generated by configure for gcc and MSVC. */
/* config.h.in. Generated from configure.in by autoheader. */
/* acconfig.h
This file is in the public domain.
Descriptive text for the C preprocessor macros that
the distributed Autoconf macros can define.
No software package will use all of them; autoheader copies the ones
your configure.in uses into your configuration header file templates.
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). Although this order
can split up related entries, it makes it easier to check whether
a given entry is in the file.
Leave the following blank line there!! Autoheader needs it. */
/* Other stuff */
#define ENABLE_NLS 1
#define GTK_COMPILED_WITH_DEBUGGING "yes"
/* #undef HAVE_CATGETS */
/* #undef HAVE_DIMM_H */
#define HAVE_GETTEXT 1
/* #undef HAVE_IPC_H */
/* #undef HAVE_LC_MESSAGES */
#define HAVE_PROGRESSIVE_JPEG 1
/* #undef HAVE_PWD_H */
/* #undef HAVE_SHM_H */
/* #undef HAVE_STPCPY */
/* #undef HAVE_XSHM_H */
/* #undef HAVE_SHAPE_EXT */
/* #undef HAVE_SOLARIS_XINERAMA */
/* #undef HAVE_SYS_SELECT_H */
#ifndef _MSC_VER
#define HAVE_SYS_TIME_H 1
#else /* _MSC_VER */
/* #undef HAVE_SYS_TIME_H */
#endif /* _MSC_VER */
/* #undef HAVE_XFREE_XINERAMA */
/* #undef HAVE_XINERAMA */
/* #undef HAVE_XCONVERTCASE */
/* #undef HAVE_XFT */
/* #undef HAVE_SIGSETJMP */
#define NO_FD_SET 1
/* #undef RESOURCE_BASE */
#ifndef _MSC_VER
#define USE_GMODULE 1
#define USE_MMX 1
#endif
/* Define to use XKB extension */
/* #undef HAVE_XKB */
/* Define to use shadowfb in the linux-fb port */
/* #undef ENABLE_SHADOW_FB */
/* Define to use a fb manager in the linux-fb port */
/* #undef ENABLE_FB_MANAGER */
/* #undef XINPUT_NONE */
/* #undef XINPUT_GXI */
/* #undef XINPUT_XFREE */
/* Define as the return type of signal handlers (int or void). */
#define RETSIGTYPE void
/* Most machines will be happy with int or void. IRIX requires '...' */
/* #undef SIGNAL_ARG_TYPE */
#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
/* #undef PACKAGE */
/* #undef VERSION */
/* Leave that blank line there!! Autoheader needs it.
If you're adding to this file, keep in mind:
The entries are in sort -df order: alphabetical, case insensitive,
ignoring punctuation (such as underscores). */
/* always defined to indicate that i18n is enabled */
#define ENABLE_NLS 1
/* Define the location where the catalogs will be installed */
#define GTK_LOCALEDIR "UNUSED/share/locale"
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
/* Is the wctype implementation broken */
/* #undef HAVE_BROKEN_WCTYPE */
/* Define to 1 if you have the `dcgettext' function. */
#define HAVE_DCGETTEXT 1
/* Define to 1 if you have the <dlfcn.h> header file. */
/* #undef HAVE_DLFCN_H */
/* Define to 1 if you have the `flockfile' function. */
/* #undef HAVE_FLOCKFILE */
/* Define to 1 if you have the `getpagesize' function. */
#ifndef _MSC_VER
#define HAVE_GETPAGESIZE 1
#else /* _MSC_VER */
/* #undef HAVE_GETPAGESIZE */
#endif /* _MSC_VER */
/* Define to 1 if you have the `getresuid' function. */
/* #undef HAVE_GETRESUID */
/* Define if the GNU gettext() function is already present or preinstalled. */
#define HAVE_GETTEXT 1
/* Define to 1 if you have the <inttypes.h> header file. */
#ifndef _MSC_VER
#define HAVE_INTTYPES_H 1
#else /* _MSC_VER */
/* #undef HAVE_INTTYPES_H */
#endif /* _MSC_VER */
/* Define if your <locale.h> file defines LC_MESSAGES. */
/* #undef HAVE_LC_MESSAGES */
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define to 1 if you have the `lstat' function. */
/* #undef HAVE_LSTAT */
/* Define to 1 if you have the `mallinfo' function. */
/* #undef HAVE_MALLINFO */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkstemp' function. */
/* #undef HAVE_MKSTEMP */
/* Define to 1 if you have a working `mmap' system call. */
/* #undef HAVE_MMAP */
/* Define to 1 if you have the <pwd.h> header file. */
/* #undef HAVE_PWD_H */
/* Have the Xrandr extension library */
/* #undef HAVE_RANDR */
/* Define to 1 if you have the <stdint.h> header file. */
#ifndef _MSC_VER
#define HAVE_STDINT_H 1
#else /* _MSC_VER */
/* #undef HAVE_STDINT_H */
#endif /* _MSC_VER */
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
/* #undef HAVE_STRINGS_H */
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#ifndef _MSC_VER
#define HAVE_SYS_TIME_H 1
#else /* _MSC_VER */
/* #undef HAVE_SYS_TIME_H */
#endif /* _MSC_VER */
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
/* #undef HAVE_SYS_WAIT_H */
/* Define to 1 if you have the <unistd.h> header file. */
#ifndef _MSC_VER
#define HAVE_UNISTD_H 1
#else /* _MSC_VER */
/* #undef HAVE_UNISTD_H */
#endif /* _MSC_VER */
/* Have uxtheme.h include file */
#define HAVE_UXTHEME_H 1
/* Have wchar.h include file */
#define HAVE_WCHAR_H 1
/* Have wctype.h include file */
#define HAVE_WCTYPE_H 1
/* Define if we have X11R6 */
/* #undef HAVE_X11R6 */
/* Define to 1 if you have the `XConvertCase' function. */
/* #undef HAVE_XCONVERTCASE */
/* Have the Xcursor library */
/* #undef HAVE_XCURSOR */
/* Have the XFIXES X extension */
/* #undef HAVE_XFIXES */
/* Define to 1 if you have the `XInternAtoms' function. */
/* #undef HAVE_XINTERNATOMS */
/* Have the SYNC extension library */
/* #undef HAVE_XSYNC */
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
/* #undef HAVE__NL_TIME_FIRST_WEEKDAY */
/* Define if <X11/extensions/XIproto.h> needed for xReply */
/* #undef NEED_XIPROTO_H_FOR_XREPLY */
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B"
/* Define to the full name of this package. */
#define PACKAGE_NAME "gtk+"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "gtk+ 2.9.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gtk+"
/* Define to the version of this package. */
#define PACKAGE_VERSION "@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@"
/* Define as the return type of signal handlers (`int' or `void'). */
#define RETSIGTYPE void
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Whether to load modules via .la files rather than directly */
/* #undef USE_LA_MODULES */
/* Define to 1 if the X Window System is missing or not being used. */
/* #undef X_DISPLAY_MISSING */
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to `int' if <sys/types.h> doesn't define. */
#define gid_t int
/* Define to `int' if <sys/types.h> doesn't define. */
#define uid_t int

1810
gtk-2-12/configure.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -0,0 +1,5 @@
SUBDIRS =
if USE_X11
SUBDIRS += gdk-pixbuf-xlib
endif

View File

@@ -0,0 +1,7 @@
Makefile
Makefile.in
*.la
*.lo
.libs
.deps
gdk-pixbuf-xlib-2.0.pc

View File

@@ -0,0 +1,299 @@
2008-02-12 Matthias Clasen <mclasne@redhat.com>
* === Released 2.12.8 ===
2008-01-29 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.7 ===
2008-01-28 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.6 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.5 ===
2008-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.4 ===
2007-12-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.3 ===
2007-11-26 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.2 ===
2007-10-16 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.1 ===
2007-09-13 Matthias Clasen <mclasen@redhat.com>
* === Released 2.12.0 ===
2007-07-21 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.6 ===
2007-07-02 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.5 ===
2007-06-19 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.4 ===
2007-06-15 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.3 ===
2007-06-06 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.2 ===
2007-06-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.1 ===
2007-05-24 Matthias Clasen <mclasen@redhat.com>
* === Released 2.11.0 ===
2006-10-08 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-xlib.c: Apply a cleanup patch by
Kjartan Maraas (#341812)
2006-08-17 Matthias Clasen <mclasen@redhat.com>
* === Released 2.10.2 ===
2006-07-23 Matthias Clasen <mclasen@redhat.com>
* === Released 2.10.1 ===
2006-07-02 Matthias Clasen <mclasen@redhat.com>
* === Released 2.10.0 ===
2006-06-21 Matthias Clasen <mclasen@redhat.com>
* === Released 2.9.4 ===
2006-06-12 Matthias Clasen <mclasen@redhat.com>
* === Released 2.9.3 ===
2006-06-05 Matthias Clasen <mclasen@redhat.com>
* === Released 2.9.2 ===
2006-05-16 Matthias Clasen <mclasen@redhat.com>
* === Released 2.9.1 ====
2006-05-04 Matthias Clasen <mclasen@redhat.com>
* === Released 2.9.0 ===
2005-11-17 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-xlib-drawable.c:
* gdk-pixbuf-xlibrgb.c: const correctness fixes
found by Arjan van de Ven and gcc.
2005-10-05 Matthias Clasen <mclasen@redhat.com>
* gdk-pixbuf-xlib-2.0.pc.in (Requires): Require
gmodule-no-export-2.0 instead of gmodule-2.0
2005-08-24 Matthias Clasen <mclasen@redhat.com>
* === Released 2.8.2 ===
* === Released 2.8.1 ===
2005-08-13 Matthias Clasen <mclasen@redhat.com>
* === Released 2.8.0 ===
2005-08-02 Matthias Clasen <mclasen@redhat.com>
* === Released 2.7.5 ===
2005-07-22 Matthias Clasen <mclasen@redhat.com>
* === Released 2.7.4 ===
2005-07-15 Matthias Clasen <mclasen@redhat.com>
* === Released 2.7.3 ===
2005-07-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.7.2 ===
2005-07-01 Matthias Clasen <mclasen@redhat.com>
* === Released 2.7.1 ===
2005-06-20 Matthias Clasen <mclasen@redhat.com>
* === Released 2.7.0 ===
2005-01-08 Matthias Clasen <mclasen@redhat.com>
* === Released 2.6.1 ===
2004-12-16 Matthias Clasen <mclasen@redhat.com>
* === Released 2.6.0 ===
2004-12-02 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.6 ===
2004-11-12 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.5 ===
2004-10-27 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.4 ===
2004-09-19 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.3 ===
2004-08-25 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.2 ===
2004-08-01 Matthias Clasen <mclasen@redhat.com>
* === Released 2.5.1 ===
Tue Jul 20 23:26:10 2004 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-xlibrgb.c: Include config.h first. (#148034)
Sun Jul 18 20:17:41 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* === released 2.5.0 ==
Tue Mar 9 09:33:54 2004 Owen Taylor <otaylor@redhat.com>
* === Released 2.3.6 ===
Wed Mar 3 15:50:28 2004 Owen Taylor <otaylor@redhat.com>
* Makefile.am (libgdk_pixbuf_xlib_2_0_la_LIBADD): Add
a shared library dependency on libgdk-pixbuf (#124687)
Tue Feb 24 14:45:03 2004 Owen Taylor <otaylor@redhat.com>
* === Released 2.3.3 ===
Fri Feb 13 10:32:09 2004 Owen Taylor <otaylor@redhat.com>
* gdk-pixbuf-xlibrgb.h: Remove a couple of unneeded
#includes. Isn't unsupported code fun?
(133833, Gregory Merchan)
Tue Oct 7 23:30:00 2003 Matthias Clasen <maclas@gmx.de>
* gdk-pixbuf-xlib.h: Add C++ guards. (123955, Harring Figueiredo)
2002-08-06 jacob berkman <jacob@ximian.com>
* Makefile.am (lib_LTLIBRARIES): link against xlibs
2002-01-25 Federico Mena Quintero <federico@ximian.com>
Merge from gdk-pixbuf stable.
* gdk-pixbuf-xlib-drawable.c (rgb565msb): Fixed the endianness
conversion --- swap the individual 16 bit values instead of taking
everying as a 32 bit value.
(rgb565lsb): Likewise.
(rgb555lsb): Likewise.
(rgb555msb): Likewise.
2001-11-26 Akira TAGOH <tagoh@redhat.com>
* Makefile.am (libgdk_pixbuf_xlib_1_3_la_LDFLAGS):
Added -version-info.
2001-05-19 Havoc Pennington <hp@pobox.com>
* gdk-pixbuf-xlibrgb.c: docs
2001-06-04 Havoc Pennington <hp@redhat.com>
* gdk-pixbuf-xlibrgb.c (xlib_rgb_init): remove C++ comment,
reported by Dan McNichol
Mon Jan 8 11:41:41 2001 Owen Taylor <otaylor@redhat.com>
* Makefile.am (INCLUDES): Add @x_cflags@ (#36310)
2001-01-02 Havoc Pennington <hp@redhat.com>
* gdk-pixbuf-xlib-2.0.pc.in (Description): fix up description a bit.
2000-10-06 Havoc Pennington <hp@redhat.com>
* gdk-pixbuf-xlib.c: Put display/screen here, instead of in
the main gdk-pixbuf library as it was in 1.0; since the io-xpm
loader doesn't use these variables anymore it should be OK
2000-09-26 Federico Mena Quintero <federico@helixcode.com>
* gdk-pixbuf/gdk-pixbuf-xlib-drawable.c
(gdk_pixbuf_xlib_get_from_drawable): Do not use
gdk_screen_{width,height}(). Thanks to John Harper for pointing
this out.
2000-08-26 Federico Mena Quintero <federico@helixcode.com>
* gdk-pixbuf/gdk-pixbuf-xlibrgb.c: Added API reference docs.
2000-08-25 Federico Mena Quintero <federico@helixcode.com>
* gdk-pixbuf/gdk-pixbuf-xlib-drawable.c (handle_x_error): Return
0.
(xlib_window_is_viewable): Return FALSE in the last case.
* gdk-pixbuf/gdk-pixbuf-xlib-render.c: Updated the inline docs.
* gdk-pixbuf/gdk-pixbuf-xlib.c: Added API docs.
2000-08-25 John Harper <john@dcs.warwick.ac.uk>
Work to create an Xlib version of gdk-pixbuf (with the Xlib
port of GdkRGB for rendering):
* configure.in: check for X libraries, set and substitute
GDK_PIXBUF_XLIB_{LIBDIR,INCLUDEDIR,LIBS} variables
* gdk_pixbuf_xlibConf.sh.in: new file -- gnome-config details
for the gdk-pixbuf-xlib library
* Makefile.am: build and install gdk_pixbuf_xlibConf.sh
* gdk-pixbuf/gdk-pixbuf-xlib-render.c,
gdk-pixbuf/gdk-pixbuf-xlib.c, gdk-pixbuf/gdk-pixbuf-xlib.h,
gdk-pixbuf/gdk-pixbuf-xlib-private.h,
gdk-pixbuf/gdk-pixbuf-xlib-drawable.c: new files, ported the
GDK dependent parts of gdk-pixbuf to use Xlib. Functions that
were called gdk_pixbuf_FOO are now gdk_pixbuf_xlib_FOO
* gdk-pixbuf/gdk-pixbuf-xlibrgb.c,
gdk-pixbuf/gdk-pixbuf-xlibrgb.h: added Chris Blizzard's Xlib
port of GdkRGB (from Mozilla CVS)
* gdk-pixbuf/Makefile.am: build a library libgdk_pixbuf_xlib.la
including the non-GDK dependent objects from libgdk_pixbuf.la
plus the Xlib ports and xlibrgb

View File

@@ -0,0 +1,39 @@
if PLATFORM_WIN32
no_undefined = -no-undefined
endif
lib_LTLIBRARIES=libgdk_pixbuf_xlib-2.0.la
INCLUDES = \
-I$(top_srcdir) -I$(top_builddir) \
-I$(top_srcdir)/gdk-pixbuf \
-I$(top_srcdir)/contrib \
-DGDK_PIXBUF_DISABLE_DEPRECATED \
$(GDK_PIXBUF_XLIB_DEP_CFLAGS)
libgdk_pixbuf_xlib_2_0_la_LDFLAGS = \
-export-dynamic \
$(no_undefined) \
-version-info $(LT_VERSION_INFO)
libgdk_pixbuf_xlib_2_0_la_LIBADD = \
$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
$(GDK_PIXBUF_XLIB_DEP_LIBS)
libgdk_pixbuf_xlib_2_0_la_SOURCES = \
gdk-pixbuf-xlib-private.h \
gdk-pixbuf-xlib.c \
gdk-pixbuf-xlib-render.c \
gdk-pixbuf-xlib-drawable.c \
gdk-pixbuf-xlibrgb.c
libgdk_pixbuf_xlibincludedir=$(includedir)/gtk-2.0/gdk-pixbuf-xlib
libgdk_pixbuf_xlibinclude_HEADERS = \
gdk-pixbuf-xlib.h \
gdk-pixbuf-xlibrgb.h
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gdk-pixbuf-xlib-2.0.pc
EXTRA_DIST = gdk-pixbuf-xlib-2.0.pc.in

View File

@@ -0,0 +1,11 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: GdkPixbuf Xlib
Description: GdkPixbuf rendering for Xlib
Version: @VERSION@
Requires: gobject-2.0,gmodule-no-export-2.0,gdk-pixbuf-2.0
Libs: -L${libdir} -lgdk_pixbuf_xlib-@GTK_API_VERSION@
Cflags: -I${includedir}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
/* GdkPixbuf library - Xlib header file
*
* Authors: John Harper <john@dcs.warwick.ac.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef GDK_PIXBUF_XLIB_PRIVATE_H
#define GDK_PIXBUF_XLIB_PRIVATE_H
#include "gdk-pixbuf-xlib.h"
#include <X11/Xlib.h>
extern Display *gdk_pixbuf_dpy;
extern int gdk_pixbuf_screen;
#endif

View File

@@ -0,0 +1,398 @@
/* GdkPixbuf library - Rendering functions
*
* Copyright (C) 1999 The Free Software Foundation
*
* Author: Federico Mena-Quintero <federico@gimp.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/* Trivially ported to Xlib(RGB) by John Harper. */
#include <config.h>
#include "gdk-pixbuf-private.h"
#include "gdk-pixbuf-xlib-private.h"
/**
* gdk_pixbuf_xlib_render_threshold_alpha:
* @pixbuf: A pixbuf.
* @bitmap: Bitmap where the bilevel mask will be painted to.
* @src_x: Source X coordinate.
* @src_y: source Y coordinate.
* @dest_x: Destination X coordinate.
* @dest_y: Destination Y coordinate.
* @width: Width of region to threshold.
* @height: Height of region to threshold.
* @alpha_threshold: Opacity values below this will be painted as zero; all
* other values will be painted as one.
*
* Takes the opacity values in a rectangular portion of a pixbuf and thresholds
* them to produce a bi-level alpha mask that can be used as a clipping mask for
* a drawable.
*
**/
void
gdk_pixbuf_xlib_render_threshold_alpha (GdkPixbuf *pixbuf, Pixmap bitmap,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height,
int alpha_threshold)
{
GC gc;
XColor color;
int x, y;
guchar *p;
int start, start_status;
int status;
XGCValues gcv;
g_return_if_fail (pixbuf != NULL);
g_return_if_fail (pixbuf->colorspace == GDK_COLORSPACE_RGB);
g_return_if_fail (pixbuf->n_channels == 3 || pixbuf->n_channels == 4);
g_return_if_fail (pixbuf->bits_per_sample == 8);
g_return_if_fail (bitmap != 0);
g_return_if_fail (width >= 0 && height >= 0);
g_return_if_fail (src_x >= 0 && src_x + width <= pixbuf->width);
g_return_if_fail (src_y >= 0 && src_y + height <= pixbuf->height);
g_return_if_fail (alpha_threshold >= 0 && alpha_threshold <= 255);
if (width == 0 || height == 0)
return;
gc = XCreateGC (gdk_pixbuf_dpy, bitmap, 0, &gcv);
if (!pixbuf->has_alpha) {
color.pixel = (alpha_threshold == 255) ? 0 : 1;
XSetForeground (gdk_pixbuf_dpy, gc, color.pixel);
XFillRectangle (gdk_pixbuf_dpy, bitmap, gc,
dest_x, dest_y, width, height);
XFreeGC (gdk_pixbuf_dpy, gc);
return;
}
color.pixel = 0;
XSetForeground (gdk_pixbuf_dpy, gc, color.pixel);
XFillRectangle (gdk_pixbuf_dpy, bitmap, gc,
dest_x, dest_y, width, height);
color.pixel = 1;
XSetForeground (gdk_pixbuf_dpy, gc, color.pixel);
for (y = 0; y < height; y++) {
p = (pixbuf->pixels + (y + src_y) * pixbuf->rowstride + src_x * pixbuf->n_channels
+ pixbuf->n_channels - 1);
start = 0;
start_status = *p < alpha_threshold;
for (x = 0; x < width; x++) {
status = *p < alpha_threshold;
if (status != start_status) {
if (!start_status)
XDrawLine (gdk_pixbuf_dpy, bitmap, gc,
start + dest_x, y + dest_y,
x - 1 + dest_x, y + dest_y);
start = x;
start_status = status;
}
p += pixbuf->n_channels;
}
if (!start_status)
XDrawLine (gdk_pixbuf_dpy, bitmap, gc,
start + dest_x, y + dest_y,
x - 1 + dest_x, y + dest_y);
}
XFreeGC (gdk_pixbuf_dpy, gc);
}
/* Creates a buffer by stripping the alpha channel of a pixbuf */
static guchar *
remove_alpha (GdkPixbuf *pixbuf, int x, int y, int width, int height, int *rowstride)
{
guchar *buf;
int xx, yy;
guchar *src, *dest;
g_assert (pixbuf->n_channels == 4);
g_assert (pixbuf->has_alpha);
g_assert (width > 0 && height > 0);
g_assert (x >= 0 && x + width <= pixbuf->width);
g_assert (y >= 0 && y + height <= pixbuf->height);
*rowstride = 4 * ((width * 3 + 3) / 4);
buf = g_new (guchar, *rowstride * height);
for (yy = 0; yy < height; yy++) {
src = pixbuf->pixels + pixbuf->rowstride * (yy + y) + x * pixbuf->n_channels;
dest = buf + *rowstride * yy;
for (xx = 0; xx < width; xx++) {
*dest++ = *src++;
*dest++ = *src++;
*dest++ = *src++;
src++;
}
}
return buf;
}
/**
* gdk_pixbuf_xlib_render_to_drawable:
* @pixbuf: A pixbuf.
* @drawable: Destination drawable.
* @gc: GC used for rendering.
* @src_x: Source X coordinate within pixbuf.
* @src_y: Source Y coordinate within pixbuf.
* @dest_x: Destination X coordinate within drawable.
* @dest_y: Destination Y coordinate within drawable.
* @width: Width of region to render, in pixels.
* @height: Height of region to render, in pixels.
* @dither: Dithering mode for XlibRGB.
* @x_dither: X offset for dither.
* @y_dither: Y offset for dither.
*
* Renders a rectangular portion of a pixbuf to a drawable while using the
* specified GC. This is done using XlibRGB, so the specified drawable must
* have the XlibRGB visual and colormap. Note that this function will ignore
* the opacity information for images with an alpha channel; the GC must already
* have the clipping mask set if you want transparent regions to show through.
*
* For an explanation of dither offsets, see the XlibRGB documentation. In
* brief, the dither offset is important when re-rendering partial regions of an
* image to a rendered version of the full image, or for when the offsets to a
* base position change, as in scrolling. The dither matrix has to be shifted
* for consistent visual results. If you do not have any of these cases, the
* dither offsets can be both zero.
**/
void
gdk_pixbuf_xlib_render_to_drawable (GdkPixbuf *pixbuf,
Drawable drawable, GC gc,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height,
XlibRgbDither dither,
int x_dither, int y_dither)
{
guchar *buf;
int rowstride;
g_return_if_fail (pixbuf != NULL);
g_return_if_fail (pixbuf->colorspace == GDK_COLORSPACE_RGB);
g_return_if_fail (pixbuf->n_channels == 3 || pixbuf->n_channels == 4);
g_return_if_fail (pixbuf->bits_per_sample == 8);
g_return_if_fail (drawable != 0);
g_return_if_fail (gc != 0);
g_return_if_fail (width >= 0 && height >= 0);
g_return_if_fail (src_x >= 0 && src_x + width <= pixbuf->width);
g_return_if_fail (src_y >= 0 && src_y + height <= pixbuf->height);
if (width == 0 || height == 0)
return;
/* This will have to be modified once we support other image types.
* Also, GdkRGB does not have gdk_draw_rgb_32_image_dithalign(), so we
* have to pack the buffer first. Sigh.
*/
if (pixbuf->has_alpha)
buf = remove_alpha (pixbuf, src_x, src_y, width, height, &rowstride);
else {
buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 3;
rowstride = pixbuf->rowstride;
}
xlib_draw_rgb_image_dithalign (drawable, gc,
dest_x, dest_y,
width, height,
dither,
buf, rowstride,
x_dither, y_dither);
if (pixbuf->has_alpha)
g_free (buf);
}
/**
* gdk_pixbuf_xlib_render_to_drawable_alpha:
* @pixbuf: A pixbuf.
* @drawable: Destination drawable.
* @src_x: Source X coordinate within pixbuf.
* @src_y: Source Y coordinates within pixbuf.
* @dest_x: Destination X coordinate within drawable.
* @dest_y: Destination Y coordinate within drawable.
* @width: Width of region to render, in pixels.
* @height: Height of region to render, in pixels.
* @alpha_mode: If the image does not have opacity information, this is ignored.
* Otherwise, specifies how to handle transparency when rendering.
* @alpha_threshold: If the image does have opacity information and @alpha_mode
* is GDK_PIXBUF_ALPHA_BILEVEL, specifies the threshold value for opacity
* values.
* @dither: Dithering mode for XlibRGB.
* @x_dither: X offset for dither.
* @y_dither: Y offset for dither.
*
* Renders a rectangular portion of a pixbuf to a drawable. This is done using
* XlibRGB, so the specified drawable must have the XlibRGB visual and colormap.
*
* When used with #GDK_PIXBUF_ALPHA_BILEVEL, this function has to create a bitmap
* out of the thresholded alpha channel of the image and, it has to set this
* bitmap as the clipping mask for the GC used for drawing. This can be a
* significant performance penalty depending on the size and the complexity of
* the alpha channel of the image. If performance is crucial, consider handling
* the alpha channel yourself (possibly by caching it in your application) and
* using gdk_pixbuf_xlib_render_to_drawable() or GdkRGB directly instead.
**/
void
gdk_pixbuf_xlib_render_to_drawable_alpha (GdkPixbuf *pixbuf, Drawable drawable,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height,
GdkPixbufAlphaMode alpha_mode,
int alpha_threshold,
XlibRgbDither dither,
int x_dither, int y_dither)
{
Pixmap bitmap = 0;
GC gc;
XGCValues gcv;
g_return_if_fail (pixbuf != NULL);
g_return_if_fail (pixbuf->colorspace == GDK_COLORSPACE_RGB);
g_return_if_fail (pixbuf->n_channels == 3 || pixbuf->n_channels == 4);
g_return_if_fail (pixbuf->bits_per_sample == 8);
g_return_if_fail (drawable != 0);
g_return_if_fail (width >= 0 && height >= 0);
g_return_if_fail (src_x >= 0 && src_x + width <= pixbuf->width);
g_return_if_fail (src_y >= 0 && src_y + height <= pixbuf->height);
if (width == 0 || height == 0)
return;
gc = XCreateGC (gdk_pixbuf_dpy, drawable, 0, &gcv);
if (pixbuf->has_alpha) {
/* Right now we only support GDK_PIXBUF_ALPHA_BILEVEL, so we
* unconditionally create the clipping mask.
*/
bitmap = XCreatePixmap (gdk_pixbuf_dpy,
RootWindow (gdk_pixbuf_dpy,
gdk_pixbuf_screen),
width, height, 1);
gdk_pixbuf_xlib_render_threshold_alpha (pixbuf, bitmap,
src_x, src_y,
0, 0,
width, height,
alpha_threshold);
XSetClipMask (gdk_pixbuf_dpy, gc, bitmap);
XSetClipOrigin (gdk_pixbuf_dpy, gc, dest_x, dest_y);
}
gdk_pixbuf_xlib_render_to_drawable (pixbuf, drawable, gc,
src_x, src_y,
dest_x, dest_y,
width, height,
dither,
x_dither, y_dither);
if (bitmap)
XFreePixmap (gdk_pixbuf_dpy, bitmap);
XFreeGC (gdk_pixbuf_dpy, gc);
}
/**
* gdk_pixbuf_xlib_render_pixmap_and_mask:
* @pixbuf: A pixbuf.
* @pixmap_return: Return value for the created pixmap.
* @mask_return: Return value for the created mask.
* @alpha_threshold: Threshold value for opacity values.
*
* Creates a pixmap and a mask bitmap which are returned in the @pixmap_return
* and @mask_return arguments, respectively, and renders a pixbuf and its
* corresponding tresholded alpha mask to them. This is merely a convenience
* function; applications that need to render pixbufs with dither offsets or to
* given drawables should use gdk_pixbuf_xlib_render_to_drawable_alpha() or
* gdk_pixbuf_xlib_render_to_drawable(), and
* gdk_pixbuf_xlib_render_threshold_alpha().
*
* If the pixbuf does not have an alpha channel, then *@mask_return will be set
* to None.
**/
void
gdk_pixbuf_xlib_render_pixmap_and_mask (GdkPixbuf *pixbuf,
Pixmap *pixmap_return,
Pixmap *mask_return,
int alpha_threshold)
{
g_return_if_fail (pixbuf != NULL);
if (pixmap_return) {
GC gc;
XGCValues gcv;
*pixmap_return = XCreatePixmap (gdk_pixbuf_dpy,
RootWindow (gdk_pixbuf_dpy,
gdk_pixbuf_screen),
pixbuf->width,
pixbuf->height,
xlib_rgb_get_depth ());
gc = XCreateGC (gdk_pixbuf_dpy, *pixmap_return, 0, &gcv);
gdk_pixbuf_xlib_render_to_drawable (pixbuf, *pixmap_return, gc,
0, 0, 0, 0,
pixbuf->width,
pixbuf->height,
XLIB_RGB_DITHER_NORMAL,
0, 0);
XFreeGC (gdk_pixbuf_dpy, gc);
}
if (mask_return) {
if (pixbuf->has_alpha) {
*mask_return = XCreatePixmap (gdk_pixbuf_dpy,
RootWindow (gdk_pixbuf_dpy,
gdk_pixbuf_screen),
pixbuf->width,
pixbuf->height, 1);
gdk_pixbuf_xlib_render_threshold_alpha (pixbuf,
*mask_return,
0, 0, 0, 0,
pixbuf->width,
pixbuf->height,
alpha_threshold);
} else
*mask_return = 0;
}
}

View File

@@ -0,0 +1,63 @@
/* GdkPixbuf library - Initialization functions
*
* Author: John Harper <john@dcs.warwick.ac.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <config.h>
#include <X11/Xlib.h>
#include <gdk-pixbuf/gdk-pixbuf-private.h>
#include "gdk-pixbuf-xlib-private.h"
Display *gdk_pixbuf_dpy = NULL;
int gdk_pixbuf_screen = -1;
/**
* gdk_pixbuf_xlib_init:
* @display: X display to use.
* @screen_num: Screen number.
*
* Initializes the gdk-pixbuf Xlib machinery by calling xlib_rgb_init(). This
* function should be called near the beginning of your program, or before using
* any of the gdk-pixbuf-xlib functions.
**/
void
gdk_pixbuf_xlib_init (Display *display, int screen_num)
{
xlib_rgb_init (display, ScreenOfDisplay (display, screen_num));
gdk_pixbuf_dpy = display;
gdk_pixbuf_screen = screen_num;
}
/**
* gdk_pixbuf_xlib_init_with_depth:
* @display: X display to use.
* @screen_num: Screen number.
* @prefDepth: Preferred depth for XlibRGB.
*
* Similar to gdk_pixbuf_xlib_init(), but also lets you specify the preferred
* depth for XlibRGB if you do not want it to use the default depth it picks.
**/
void
gdk_pixbuf_xlib_init_with_depth (Display *display,
int screen_num, int prefDepth)
{
xlib_rgb_init_with_depth (display, ScreenOfDisplay (display, screen_num),
prefDepth);
gdk_pixbuf_dpy = display;
gdk_pixbuf_screen = screen_num;
}

View File

@@ -0,0 +1,91 @@
/* GdkPixbuf library - Xlib header file
*
* Authors: John Harper <john@dcs.warwick.ac.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef GDK_PIXBUF_XLIB_H
#define GDK_PIXBUF_XLIB_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk-pixbuf-xlib/gdk-pixbuf-xlibrgb.h>
#include <X11/Xlib.h>
/* init */
void gdk_pixbuf_xlib_init (Display *display, int screen_num);
void gdk_pixbuf_xlib_init_with_depth (Display *display, int screen_num,
int prefDepth);
/* render */
void gdk_pixbuf_xlib_render_threshold_alpha (GdkPixbuf *pixbuf, Pixmap bitmap,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height,
int alpha_threshold);
void gdk_pixbuf_xlib_render_to_drawable (GdkPixbuf *pixbuf,
Drawable drawable, GC gc,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height,
XlibRgbDither dither,
int x_dither, int y_dither);
void gdk_pixbuf_xlib_render_to_drawable_alpha (GdkPixbuf *pixbuf,
Drawable drawable,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height,
GdkPixbufAlphaMode alpha_mode,
int alpha_threshold,
XlibRgbDither dither,
int x_dither, int y_dither);
void gdk_pixbuf_xlib_render_pixmap_and_mask (GdkPixbuf *pixbuf,
Pixmap *pixmap_return,
Pixmap *mask_return,
int alpha_threshold);
/* drawable */
GdkPixbuf *gdk_pixbuf_xlib_get_from_drawable (GdkPixbuf *dest,
Drawable src,
Colormap cmap, Visual *visual,
int src_x, int src_y,
int dest_x, int dest_y,
int width, int height);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* GDK_PIXBUF_XLIB_H */

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,193 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "MPL"); you may not use this file except in
* compliance with the MPL. You may obtain a copy of the MPL at
* http://www.mozilla.org/MPL/
*
* Software distributed under the MPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the MPL
* for the specific language governing rights and limitations under the
* MPL.
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU Library General Public License (the "LGPL"), in
* which case the provisions of the LGPL are applicable instead of
* those above. If you wish to allow use of your version of this file
* only under the terms of the LGPL and not to allow others to use
* your version of this file under the MPL, indicate your decision by
* deleting the provisions above and replace them with the notice and
* other provisions required by the LGPL. If you do not delete the
* provisions above, a recipient may use your version of this file
* under either the MPL or the LGPL.
*/
/*
* This code is derived from GdkRgb.
* For more information on GdkRgb, see http://www.levien.com/gdkrgb/
* Raph Levien <raph@acm.org>
*/
/* Ported by Christopher Blizzard to Xlib. With permission from the
* original authors of this file, the contents of this file are also
* redistributable under the terms of the Mozilla Public license. For
* information about the Mozilla Public License, please see the
* license information at http://www.mozilla.org/MPL/
*/
/* This code is copyright the following authors:
* Raph Levien <raph@acm.org>
* Manish Singh <manish@gtk.org>
* Tim Janik <timj@gtk.org>
* Peter Mattis <petm@xcf.berkeley.edu>
* Spencer Kimball <spencer@xcf.berkeley.edu>
* Josh MacDonald <jmacd@xcf.berkeley.edu>
* Christopher Blizzard <blizzard@redhat.com>
* Owen Taylor <otaylor@redhat.com>
* Shawn T. Amundson <amundson@gtk.org>
*/
#ifndef __XLIB_RGB_H__
#define __XLIB_RGB_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <glib.h>
typedef struct _XlibRgbCmap XlibRgbCmap;
struct _XlibRgbCmap {
unsigned int colors[256];
unsigned char lut[256]; /* for 8-bit modes */
};
void
xlib_rgb_init (Display *display, Screen *screen);
void
xlib_rgb_init_with_depth (Display *display, Screen *screen, int prefDepth);
unsigned long
xlib_rgb_xpixel_from_rgb (guint32 rgb);
void
xlib_rgb_gc_set_foreground (GC gc, guint32 rgb);
void
xlib_rgb_gc_set_background (GC gc, guint32 rgb);
typedef enum
{
XLIB_RGB_DITHER_NONE,
XLIB_RGB_DITHER_NORMAL,
XLIB_RGB_DITHER_MAX
} XlibRgbDither;
void
xlib_draw_rgb_image (Drawable drawable,
GC gc,
int x,
int y,
int width,
int height,
XlibRgbDither dith,
unsigned char *rgb_buf,
int rowstride);
void
xlib_draw_rgb_image_dithalign (Drawable drawable,
GC gc,
int x,
int y,
int width,
int height,
XlibRgbDither dith,
unsigned char *rgb_buf,
int rowstride,
int xdith,
int ydith);
void
xlib_draw_rgb_32_image (Drawable drawable,
GC gc,
int x,
int y,
int width,
int height,
XlibRgbDither dith,
unsigned char *buf,
int rowstride);
void
xlib_draw_gray_image (Drawable drawable,
GC gc,
int x,
int y,
int width,
int height,
XlibRgbDither dith,
unsigned char *buf,
int rowstride);
XlibRgbCmap *
xlib_rgb_cmap_new (guint32 *colors, int n_colors);
void
xlib_rgb_cmap_free (XlibRgbCmap *cmap);
void
xlib_draw_indexed_image (Drawable drawable,
GC gc,
int x,
int y,
int width,
int height,
XlibRgbDither dith,
unsigned char *buf,
int rowstride,
XlibRgbCmap *cmap);
/* Below are some functions which are primarily useful for debugging
and experimentation. */
Bool
xlib_rgb_ditherable (void);
void
xlib_rgb_set_verbose (Bool verbose);
/* experimental colormap stuff */
void
xlib_rgb_set_install (Bool install);
void
xlib_rgb_set_min_colors (int min_colors);
Colormap
xlib_rgb_get_cmap (void);
Visual *
xlib_rgb_get_visual (void);
XVisualInfo *
xlib_rgb_get_visual_info (void);
int
xlib_rgb_get_depth (void);
Display *
xlib_rgb_get_display (void);
Screen *
xlib_rgb_get_screen (void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __XLIB_RGB_H__ */

View File

@@ -0,0 +1,18 @@
libgtk1 for Debian
----------------------
The GIMP Tool Kit (gtk) is a set of widgets to help you program
programs for the X Windowing System easily and powerfully.
gtk is the moving force behind The GNU Image Manipulation Program (The
GIMP) -- the number one freely-available image editing and creation
program available.
gtk is rapidly under development, and the source tree has officially
been separated from The GIMP now, as other teams of programmers
are beginning to write software using its great widget set -- like
GNOME, a desktop interface for X, and gzilla, a freely available
web browser for X.
Ben Gertzfield <che@debian.org>, Mon, 29 Sep 1997 13:11:45 -0700

62
gtk-2-12/debian/build Executable file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/perl -w
# Adjust debian/changelog and build a new
# Debian package of a CVS archive.
# Written 17 November 1998 by Ben Gertzfield
# <che@debian.org>
# This work is released under the GNU
# General Public License, version 2 or
# later.
use strict;
use diagnostics;
use File::Copy;
my $maintainer = 'Ben Gertzfield <che@debian.org>';
my @date = localtime;
my $datestr = sprintf("%d%.2d%.2d", $date[5] + 1900, $date[4] + 1, $date[3]);
my $revision = '01';
open (CHANGELOG, 'debian/changelog') or die "Couldn't open debian/changelog: $!\n";
$_ = <CHANGELOG>;
chomp;
close CHANGELOG;
my ($package, $last_date, $last_revision) = /^(.*?) \((.*?)\.(.*)?\)/;
if ($last_date eq $datestr) {
$revision = sprintf("%.2d", $last_revision + 1);
}
my $new_version = "$datestr.$revision";
copy('debian/changelog', 'debian/changelog.old') or die "Couldn't copy debian/changelog to debian/changelog.old: $!\n";
open(NEWCHANGELOG, ">debian/changelog") or die "Couldn't open debian/changelog for writing: $!\n";
print NEWCHANGELOG "$package ($new_version) unstable; urgency=low\n\n * CVS snapshot build at " . scalar localtime() . "\n\n -- $maintainer " . `date -R` . "\n";
open(OLDCHANGELOG, "debian/changelog.old") or die "Couldn't open debian/changelog.old: $!\n";
while (<OLDCHANGELOG>) {
print NEWCHANGELOG;
}
close OLDCHANGELOG;
close NEWCHANGELOG;
unlink('debian/changelog.old') or die "Couldn't unlink debian/changelog.old: $!\n";
open(NEWVERSION, '>debian/version') or die "Couldn't open debian/version for writing: $!\n";
print NEWVERSION "$new_version\n";
close NEWVERSION;
system('dpkg-buildpackage -b -rfakeroot -us -uc');
unlink 'debian/version' or die "Couldn't unlink debian/version: $!\n";

10
gtk-2-12/debian/changelog Normal file
View File

@@ -0,0 +1,10 @@
gtk+-cvs (19981116.01) unstable; urgency=low
* First test build from CVS
-- Ben Gertzfield <che@debian.org> Tue, 17 Nov 1998 12:02:13 -0800
Local variables:
mode: debian-changelog
add-log-mailing-address: "che@debian.org"
End:

81
gtk-2-12/debian/control Normal file
View File

@@ -0,0 +1,81 @@
Source: gtk+-cvs
Priority: extra
Section: libs
Maintainer: Ben Gertzfield <che@debian.org>
Standards-Version: 2.4.0.0
Package: libgtk-cvs-1.1
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Conflicts: libgtk-dev (<< 1:1.0.2), libgtk1.1
Description: CVS build of the GIMP Toolkit set of widgets for X
**THIS IS NOT AN OFFICIAL DEBIAN PACKAGE! THIS IS AN AUTOMATED CVS
BUILD OF THE GTK+ LIBRARIES! BEWARE! IT MAY NOT WORK!**
.
The GIMP Toolkit is a freely available set of widgets for X.
GTK is easy to use, and has been implemented in such projects as
The GNU Image Manipulation Program (The GIMP), GNOME, a GNU
desktop set of utilities for X, and gzilla, a GNU web-browser.
.
This is the unstable 1.1 branch of GTK. It is not intended for use
with stable projects!
Package: libgtk-cvs-dev
Architecture: any
Section: devel
Depends: libgtk-cvs-1.1 (=${Source-Version}), libglib-cvs-dev
Suggests: libgtk-cvs-doc
Provides: libgtk1.1-dev
Replaces: libgtk1.1-dev
Conflicts: libgtk-dev, libgtk1 (<< 1:1.0.4), libgtk1.1-dev
Description: CVS build of development files for the GIMP Toolkit
**THIS IS NOT AN OFFICIAL DEBIAN PACKAGE! THIS IS AN AUTOMATED CVS
BUILD OF THE GTK+ LIBRARIES! BEWARE! IT MAY NOT WORK!**
.
This package contains the header files and static libraries for the
GIMP Toolkit set of widgets for X.
.
This is the unstable, 1.1 branch of GTK+. This is not intended for
use with stable releases of programs!
.
Install this package if you wish to develop your own X programs using
the GIMP Toolkit 1.1, or if you wish to compile your own plug-ins for
The GIMP.
Package: libgtk-cvs-doc
Architecture: all
Section: doc
Conflicts: libgtk-dev (<< 1:0.99.4), libgtk-doc, libgtk1.1-doc
Description: CVS build of documentation for the GIMP Toolkit
**THIS IS NOT AN OFFICIAL DEBIAN PACKAGE! THIS IS AN AUTOMATED CVS
BUILD OF THE GTK+ LIBRARIES! BEWARE! IT MAY NOT WORK!**
.
This package contains lots of info-files, HTML docs, FAQs, and
other handy documentation about the GIMP Toolkit set of widgets
for X.
.
This package documents the unstable 1.1 release of the GIMP Toolkit.
.
Install this package if you want to have lots of info about the
GIMP toolkit when you're programming.
Package: libgtk-cvs-dbg
Architecture: any
Section: devel
Depends: libgtk-cvs-1.1 (= ${Source-Version}), libgtk-cvs-dev (= ${Source-Version})
Suggests: libgtk-cvs-doc
Conflicts: libgtk1.1-dbg
Description: CVS build of debugging files for the GIMP Toolkit
**THIS IS NOT AN OFFICIAL DEBIAN PACKAGE! THIS IS AN AUTOMATED CVS
BUILD OF THE GTK+ LIBRARIES! BEWARE! IT MAY NOT WORK!**
.
This package contains the debugging static libraries for the
GIMP Toolkit set of widgets for X.
.
This is the unstable, 1.1 branch of GTK+. This is not intended for
use with stable releases of programs!
.
Install this package if you wish to debug your own X programs using
the GIMP Toolkit 1.1, or if you wish to debug your own plug-ins for
The GIMP.

View File

@@ -0,0 +1,8 @@
This package was debianized by Ben Gertzfield <che@debian.org> on
Tue, 17 Nov 1998 12:07:17 -0800
It was produced from the CVS repository at cvs.gimp.org.
It may be redistributed under the terms of the GNU LGPL, Version 2 or
later, found on Debian systems in the file /usr/doc/copyright/LGPL.

View File

@@ -0,0 +1,9 @@
usr/lib/libgdk.so
usr/lib/libgdk.a
usr/lib/libgtk.so
usr/lib/libgtk.a
usr/include/gdk/
usr/include/gtk/
usr/bin/gtk-config
usr/man/man1/gtk-config.1
usr/share/aclocal/gtk.m4

View File

@@ -0,0 +1,5 @@
#!/bin/sh
set -e
#DEBHELPER#

View File

@@ -0,0 +1,6 @@
#!/bin/sh
set -e
install-info --quiet --remove gtk
#DEBHELPER#

View File

@@ -0,0 +1,8 @@
usr/info/gdk.info
usr/info/gtk.info
usr/info/gtk.info-1
usr/info/gtk.info-2
usr/info/gtk.info-3
usr/info/gtk.info-4
usr/info/gtk.info-5

View File

@@ -0,0 +1,11 @@
#!/bin/sh
set -e
install-info --quiet --description="The GIMP Toolkit." \
--section "The GIMP" "The GIMP" /usr/info/gtk.info.gz
install-info --quiet --description="The GIMP Drawing Kit." \
--section "The GIMP" "The GIMP" /usr/info/gdk.info.gz
#DEBHELPER#

View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
install-info --quiet --remove gtk
install-info --quiet --remove gdk
#DEBHELPER#

7
gtk-2-12/debian/postinst Normal file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
ldconfig
#DEBHELPER#

160
gtk-2-12/debian/rules Executable file
View File

@@ -0,0 +1,160 @@
#!/usr/bin/make -f
# debian/rules file for gtk+ Debian package
# written April 1998 by Ben Gertzfield <che@debian.org
build: build-stamp
build-stamp:
dh_testdir
./autogen.sh --prefix=/usr --with-xinput=xfree
$(MAKE)
cd docs && make distdocs
cd ..
touch build-stamp
build-dbg: build-dbg-stamp
build-dbg-stamp:
dh_testdir
./configure --prefix=/usr --with-xinput=xfree --enable-debug=yes
$(MAKE)
touch build-dbg-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp build-dbg-stamp install-stamp install-dbg-stamp
# Add here commands to clean up after the build process.
-$(MAKE) clean
cd docs
-$(MAKE) maintainer-clean
cd ..
-$(MAKE) distclean
find . -name '*.o' -o -name '_libs' -o -name '*.lo' -o -name '*.a' -o -name '.deps' | xargs rm -rf
dh_clean
clean-dbg:
dh_testdir
dh_testroot
rm -f build-stamp build-dbg-stamp install-stamp install-dbg-stamp
# Add here commands to clean up after the build process.
-$(MAKE) clean
cd docs
-$(MAKE) maintainer-clean
cd ..
-$(MAKE) distclean
find . -name '*.o' -o -name '_libs' -o -name '*.lo' -o -name '*.a' -o -name '.deps' | xargs rm -rf
dh_clean -k
install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean
$(MAKE) prefix=`pwd`/debian/tmp/usr install
touch install-stamp
install-dbg: install-dbg-stamp
install-dbg-stamp: build-dbg
dh_testdir
dh_testroot
dh_clean -k
$(MAKE) prefix=`pwd`/debian/libgtk-cvs-dbg/usr install
touch install-dbg-stamp
# Build architecture-independent files here.
binary-indep: build install libgtk-cvs-doc
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install libgtk-cvs-dev libgtk-cvs-1.1 libgtk-cvs-dbg
libgtk-cvs-1.1: build
dh_testdir -plibgtk-cvs-1.1
dh_testroot -plibgtk-cvs-1.1
dh_installdirs -plibgtk-cvs-1.1
# Add here commands to install the files into debian/tmp
rm -rf debian/tmp/usr/bin debian/tmp/usr/include debian/tmp/usr/info debian/tmp/usr/lib/glib debian/tmp/usr/share/aclocal debian/tmp/usr/man debian/tmp/usr/lib/*.la
dh_installdocs -plibgtk-cvs-1.1
dh_installchangelogs -plibgtk-cvs-1.1
dh_strip -plibgtk-cvs-1.1
dh_compress -plibgtk-cvs-1.1
dh_fixperms -plibgtk-cvs-1.1
dh_installdeb -plibgtk-cvs-1.1
dh_shlibdeps -plibgtk-cvs-1.1
dh_gencontrol -plibgtk-cvs-1.1
dh_makeshlibs -plibgtk-cvs-1.1 -V 'libgtk-cvs-1.1 (='`cat debian/version`')'
dh_md5sums -plibgtk-cvs-1.1
dh_builddeb -plibgtk-cvs-1.1
libgtk-cvs-dev: build
dh_testdir -plibgtk-cvs-dev
dh_testroot -plibgtk-cvs-dev
dh_clean -plibgtk-cvs-dev -k
dh_installdirs -plibgtk-cvs-dev
# Add here commands to install the files into debian/tmp
dh_movefiles -plibgtk-cvs-dev
cp gtk-config debian/tmp/usr/bin
dh_installdocs -plibgtk-cvs-dev
dh_installchangelogs -plibgtk-cvs-dev
dh_strip -plibgtk-cvs-dev
dh_compress -plibgtk-cvs-dev
dh_fixperms -plibgtk-cvs-dev
dh_installdeb -plibgtk-cvs-dev
dh_shlibdeps -plibgtk-cvs-dev
dh_gencontrol -plibgtk-cvs-dev
dh_md5sums -plibgtk-cvs-dev
dh_builddeb -plibgtk-cvs-dev
libgtk-cvs-doc:
dh_testdir -plibgtk-cvs-doc
dh_testroot -plibgtk-cvs-doc
dh_clean -plibgtk-cvs-doc -k
dh_installdirs -plibgtk-cvs-doc usr/doc/libgtk-cvs-doc/faq-html \
usr/doc/libgtk-cvs-doc/tutorial-html usr/doc/libgtk-cvs-doc/italian-tutorial-html usr/doc/libgtk-cvs-doc/french-tutorial-html usr/doc/libgtk-cvs-doc/gdk-html
dh_movefiles -plibgtk-cvs-doc
cp docs/html/gtkfaq*.html debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/faq-html
cp docs/html/gtk_tut-*.html debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/tutorial-html
cp docs/html/*.gif debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/tutorial-html
cp docs/html/gtk_tut.html debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/tutorial-html
cp docs/html/gtk_tut_it*.html debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/italian-tutorial-html
cp docs/html/*.gif debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/italian-tutorial-html
cp docs/html/gtk_tut_fr*.html debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/french-tutorial-html
cp docs/html/*.gif debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/french-tutorial-html
cp docs/html/gdk* debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/gdk-html
cp docs/text/*.txt debian/libgtk-cvs-doc/usr/doc/libgtk-cvs-doc/
dh_installdocs -plibgtk-cvs-doc docs/{debugging,developers,styles,text_widget,widget_system,gtk-config,refcounting}.txt TODO NEWS
dh_installchangelogs -plibgtk-cvs-doc
dh_strip -plibgtk-cvs-doc
dh_compress -plibgtk-cvs-doc
dh_fixperms -plibgtk-cvs-doc
dh_installdeb -plibgtk-cvs-doc
dh_shlibdeps -plibgtk-cvs-doc
dh_gencontrol -plibgtk-cvs-doc
dh_md5sums -plibgtk-cvs-doc
dh_builddeb -plibgtk-cvs-doc
libgtk-cvs-dbg: clean-dbg install-dbg
dh_testdir -plibgtk-cvs-dbg
dh_testroot -plibgtk-cvs-dbg
dh_installdirs -plibgtk-cvs-dbg
# Add here commands to install the files into debian/libgtk-cvs-dbg
rm -rf debian/libgtk-cvs-dbg/usr/bin debian/libgtk-cvs-dbg/usr/include debian/libgtk-cvs-dbg/usr/info debian/libgtk-cvs-dbg/usr/lib/glib debian/libgtk-cvs-dbg/usr/man debian/libgtk-cvs-dbg/usr/share debian/libgtk-cvs-dbg/usr/lib/*.{la,so*}
for file in `find debian/libgtk-cvs-dbg/usr/lib -name '*.a'` ; do \
mv $$file debian/libgtk-cvs-dbg/usr/lib/`basename $$file .a`_g.a; \
done
dh_installdocs -plibgtk-cvs-dbg
dh_installchangelogs -plibgtk-cvs-dbg
dh_compress -plibgtk-cvs-dbg
dh_fixperms -plibgtk-cvs-dbg
dh_installdeb -plibgtk-cvs-dbg
dh_shlibdeps -plibgtk-cvs-dbg
dh_gencontrol -plibgtk-cvs-dbg
dh_md5sums -plibgtk-cvs-dbg
dh_builddeb -plibgtk-cvs-dbg
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary

11
gtk-2-12/demos/.cvsignore Normal file
View File

@@ -0,0 +1,11 @@
Makefile
Makefile.in
.libs
.deps
testanimation
test-inline-pixbufs.h
testpixbuf-drawable
testpixbuf-scale
testpixbuf-save
testpixbuf
pixbuf-demo

View File

@@ -0,0 +1,84 @@
## Makefile.am for gtk+/demos
SUBDIRS = gtk-demo
INCLUDES = \
-I$(top_srcdir) \
-I$(top_builddir)/gdk \
-DGDK_PIXBUF_DISABLE_DEPRECATED \
-DGDK_DISABLE_DEPRECATED \
-DGTK_DISABLE_DEPRECATED \
$(GTK_DEBUG_FLAGS) \
$(GTK_DEP_CFLAGS)
DEPS = \
$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
$(top_builddir)/gdk/$(gdktargetlib) \
$(top_builddir)/gtk/$(gtktargetlib)
LDADDS = \
$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la \
$(top_builddir)/gdk/$(gdktargetlib) \
$(top_builddir)/gtk/$(gtktargetlib)
noinst_PROGRAMS = \
testpixbuf-drawable \
testanimation \
testpixbuf-save \
testpixbuf-scale \
pixbuf-demo
# Need to build test-inline-pixbufs.h for testpixbuf
if HAVE_PNG
noinst_PROGRAMS += testpixbuf
BUILT_SOURCES = test-inline-pixbufs.h
endif
if CROSS_COMPILING
pixbuf_csource=$(GDK_PIXBUF_CSOURCE)
pixbuf_csource_deps=
else
pixbuf_csource=GDK_PIXBUF_MODULE_FILE=$(top_builddir)/gdk-pixbuf/gdk-pixbuf.loaders $(top_builddir)/gdk-pixbuf/gdk-pixbuf-csource
pixbuf_csource_deps=$(top_builddir)/gdk-pixbuf/gdk-pixbuf-csource $(top_builddir)/gdk-pixbuf/gdk-pixbuf.loaders
endif
test-inline-pixbufs.h: $(pixbuf_csource_deps) apple-red.png gnome-foot.png
$(pixbuf_csource) --raw --build-list \
apple_red $(srcdir)/apple-red.png \
gnome_foot $(srcdir)/gnome-foot.png \
> test-inline-pixbufs.h \
|| (rm -f test-inline-pixbufs.h && false)
testpixbuf_DEPENDENCIES = $(DEPS)
testpixbuf_drawable_DEPENDENCIES = $(DEPS)
testpixbuf_save_DEPENDENCIES = $(DEPS)
testpixbuf_scale_DEPENDENCIES = $(DEPS)
testanimation_DEPENDENCIES = $(DEPS)
pixbuf_demo_DEPENDENCIES = $(DEPS)
testpixbuf_LDADD = $(LDADDS)
testpixbuf_drawable_LDADD = $(LDADDS)
testpixbuf_save_LDADD = $(LDADDS)
testpixbuf_scale_LDADD = $(LDADDS)
testanimation_LDADD = $(LDADDS)
pixbuf_demo_LDADD = $(LDADDS)
testpixbuf_SOURCES = testpixbuf.c pixbuf-init.c
testpixbuf_drawable_SOURCES = testpixbuf-drawable.c pixbuf-init.c
testpixbuf_save_SOURCES = testpixbuf-save.c
testpixbuf_scale_SOURCES = testpixbuf-scale.c pixbuf-init.c
testanimation_SOURCES = testanimation.c pixbuf-init.c
pixbuf_demo_SOURCES = pixbuf-demo.c pixbuf-init.c
EXTRA_DIST = \
apple-red.png \
background.jpg \
gnome-applets.png \
gnome-calendar.png \
gnome-foot.png \
gnome-gimp.png \
gnome-gmush.png \
gnome-gsame.png \
gnu-keys.png
DISTCLEANFILES = test-inline-pixbufs.h

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

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