Bryce,
I made a fresh checkout of 0_46_BRANCH and patched 01, 02 and 03. I applied patch Nr 04 manually and did a diff against a directory patched until Nr 03
The resulting diff is not so nice as an "svn diff" but patches fine on the second directory.
I attach the patch. (Same name different size).
HTH,
Adib. ---
Bryce Harrington schrieb:
I. Rygle, that round-up of Windows issues is quite handy!
II. Patches included so far
#179988 01_win32_printing.patch ?????? 02_win32_print_dialog_parent_window.patch (from Joel; no LP#) #183646 03_vista_turn_off_dashes.patch #168896 05_save_as_xaml.patch:
III. Patches/bugs not included due to problems
#165726 04_win32_remove_dialogs_on_top_preference.patch Fails to apply. See bug for details. #204779: ?? Not sure what to do here. A late comment refs to a patch in #187290 so maybe that patch needs inclusion? #187290: ?? I'm unclear if the patch here (comment #34) is ready, or needs additional testing/fixing.
IV. New Windows patch packaging system
I've added a debian-like patch setup for managing Windows patches. In other words, rather than apply patches directly, they are placed in inkscape/packaging/win32/patches/ and listed in the 'series' file in that directory. I've also written a simple script to apply the patches:
cd /packaging/win32/ && ./apply_patches.sh
This will need to be done by the Windows packagers when building 0.46.0 Windows packages (perhaps some scripts could be updated to include this step). Please someone update the Win32 docs to reflect this.
This may seem weird compared with just committing the patches directly onto the stable branch, however this is standard operating procedure on Linux distros, and makes managing the patches and future updates easier. By keeping the patches only applied for Windows, it also completely avoids the risk of windows patches breaking linux code (these patches look safe, but you never know...)
This also gives the windows packagers the flexibility to do 0.46.0-2, -3, etc. releases with more patches later on if they wish.
So the basic rule is that we should have one common 0.46.0 tarball, and then each distro (including the Windows package as a distro), applies their packaging patches against it before building their packages.
When we prepare for 0.46.1, we can look into incorporating some/all of the windows (and other distro) patches.
V. Packaging and Release Announcements
As mentioned before, March 24th is the day for sending out release announcements. This means we need to get all packages (including Windows) posted ASAP. Please let me know if anyone needs additional time for packaging, in case we need to delay the PR a bit.
Bryce
On Mon, Mar 24, 2008 at 08:30:29AM -0700, rygle wrote:
A few minor improvements have been made to the Win32 printing patch, and it's as ready as I think it will get for 0.46 release. Can someone please commit it? https://bugs.launchpad.net/inkscape/+bug/179988/comments/139
Here's the latest information on printing under Win32;
Non-printing - FIXED
Default page size problems - FIXED
Print Scaling problems - FIXED
White or black boxes over printing - FIXED - GTK uses the wrong call in
Cairo (create_win32_surface, not the create_win32_printing_surface). There is a patch in the GTK bug tracker to fix this, but in the meantime we have bypassed that part of GTK. The code will revert to GTK automatically when GTK itself fixes the problem.
- All known crashes - FIXED
Adrian Johnson has patched the Cairo libs to fix a rare crash with radial gradients.
- There are two patched libs here (needs both) -
http://annarchy.freedesktop.org/~ajohnson/cairo/
- A patch has also been submitted to the Cairo git repository -
http://gitweb.freedesktop.org/?p=cairo;a=commit;h=ae9635bf33cb989f5c525800b8...
- If the cairo dlls for inkscape are built by patching 1.5.14 instead of
building from git head Adrian recommends also getting the PostScript bug fix as well: http://gitweb.freedesktop.org/?p=cairo;a=commit;h=13e05bffd5cae5690fada24c7a...
Remaining problems with Windows printing are;
- Some blurs are misaligned/mis-scaled - see
https://bugs.launchpad.net/inkscape/+bug/205732 The workaround is to print to bitmap (under rendering in the print dialogue)
- When printing falls back to bitmap, the bitmap is not always an ideal
resolution. Again the workaround is to print to bitmap (Print -> Rendering -> Bitmap).
-- View this message in context: http://www.nabble.com/Win32-libs-tp16033417p16254450.html Sent from the Inkscape - Dev mailing list archive at Nabble.com.
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Only in .: 04.patch diff -r -u4 -x .svn ..\inkscape_46_patch-1/src/dialogs/dialog-events.cpp ./src/dialogs/dialog-events.cpp --- ..\inkscape_46_patch-1/src/dialogs/dialog-events.cpp 2008-03-27 16:03:57.953125000 +0100 +++ ./src/dialogs/dialog-events.cpp 2008-03-27 16:13:30.593750000 +0100 @@ -156,13 +156,10 @@ #endif
gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2 );
-#ifdef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs - if (prefs_get_int_attribute ( "options.dialogsontopwin32", "value", 0)) - transient_policy = 2; - else - transient_policy = 0; +#ifdef WIN32 // Win32 special code to enable transient dialogs + transient_policy = 2; #endif
if (transient_policy) {
@@ -185,13 +182,10 @@ SPDesktop *desktop, win_data *wd ) { gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
-#ifdef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs - if (prefs_get_int_attribute ( "options.dialogsontopwin32", "value", 0)) - transient_policy = 2; - else - return; +#ifdef WIN32 // Win32 special code to enable transient dialogs + transient_policy = 2; #endif
if (!transient_policy) return; diff -r -u4 -x .svn ..\inkscape_46_patch-1/src/ui/dialog/dock-behavior.cpp ./src/ui/dialog/dock-behavior.cpp --- ..\inkscape_46_patch-1/src/ui/dialog/dock-behavior.cpp 2008-03-27 16:04:56.906250000 +0100 +++ ./src/ui/dialog/dock-behavior.cpp 2008-03-27 16:14:34.421875000 +0100 @@ -215,13 +215,10 @@ DockBehavior::onDesktopActivated(SPDesktop *desktop) { gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
-#ifdef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs - if (prefs_get_int_attribute ( "options.dialogsontopwin32", "value", 0)) - transient_policy = 2; - else - return; +#ifdef WIN32 // Win32 special code to enable transient dialogs + transient_policy = 2; #endif
if (!transient_policy) return; diff -r -u4 -x .svn ..\inkscape_46_patch-1/src/ui/dialog/floating-behavior.cpp ./src/ui/dialog/floating-behavior.cpp --- ..\inkscape_46_patch-1/src/ui/dialog/floating-behavior.cpp 2008-03-27 16:04:57.093750000 +0100 +++ ./src/ui/dialog/floating-behavior.cpp 2008-03-27 16:15:15.703125000 +0100 @@ -96,13 +96,10 @@ FloatingBehavior::onDesktopActivated (SPDesktop *desktop) { gint transient_policy = prefs_get_int_attribute_limited ( "options.transientpolicy", "value", 1, 0, 2);
-#ifdef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs - if (prefs_get_int_attribute ( "options.dialogsontopwin32", "value", 0)) - transient_policy = 2; - else - return; +#ifdef WIN32 // Win32 special code to enable transient dialogs + transient_policy = 2; #endif
if (!transient_policy) return; diff -r -u4 -x .svn ..\inkscape_46_patch-1/src/ui/dialog/inkscape-preferences.cpp ./src/ui/dialog/inkscape-preferences.cpp --- ..\inkscape_46_patch-1/src/ui/dialog/inkscape-preferences.cpp 2008-03-27 16:04:56.687500000 +0100 +++ ./src/ui/dialog/inkscape-preferences.cpp 2008-03-27 16:19:14.843750000 +0100 @@ -488,19 +488,17 @@ _("Dockable")); _page_windows.add_line( true, "", _win_floating, "", _("Floating"));
- _page_windows.add_group_header( _("Dialogs on top:")); -#ifndef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs +#ifndef WIN32 // non-Win32 special code to enable transient dialogs + _page_windows.add_group_header( _("Dialogs on top:")); + _page_windows.add_line( true, "", _win_ontop_none, "", _("Dialogs are treated as regular windows")); _page_windows.add_line( true, "", _win_ontop_normal, "", _("Dialogs stay on top of document windows")); _page_windows.add_line( true, "", _win_ontop_agressive, "", _("Same as Normal but may work better with some window managers")); -#else - _page_windows.add_line( false, "", _win_ontop_win32, "", - _("Whether dialogs should stay on top of document windows. Read the ReleaseNotes on this issue! (Rightclick the taskbar button and press 'Restore' to bring back a minimized document window)")); #endif
_page_windows.add_group_header( _("Miscellaneous:")); #ifndef WIN32 // FIXME: Temporary Win32 special code to enable transient dialogs diff -r -u4 -x .svn ..\inkscape_46_patch-1/src/ui/dialog/inkscape-preferences.h ./src/ui/dialog/inkscape-preferences.h --- ..\inkscape_46_patch-1/src/ui/dialog/inkscape-preferences.h 2008-03-27 16:04:57.125000000 +0100 +++ ./src/ui/dialog/inkscape-preferences.h 2008-03-27 16:19:42.250000000 +0100 @@ -131,13 +131,8 @@ PrefRadioButton _win_ontop_none, _win_ontop_normal, _win_ontop_agressive; PrefRadioButton _win_save_geom_off, _win_save_geom, _win_save_geom_prefs; PrefCheckButton _win_hide_task, _win_zoom_resize , _win_show_close;
-// FIXME: Temporary Win32 special code to enable transient dialogs -#ifdef WIN32 - PrefCheckButton _win_ontop_win32; -#endif - PrefCheckButton _calligrapy_use_abs_size; PrefCheckButton _calligrapy_keep_selected;
PrefCheckButton _connector_ignore_text;