From: <cha...@us...> - 2012-01-15 21:29:36
|
Revision: 4349 http://gnomesword.svn.sourceforge.net/gnomesword/?rev=4349&view=rev Author: charcoal Date: 2012-01-15 21:29:29 +0000 (Sun, 15 Jan 2012) Log Message: ----------- module image content in win32. hallelujah. Modified Paths: -------------- branches/webkit/ChangeLog branches/webkit/src/gnome2/preferences_dialog.c branches/webkit/src/gnome2/utilities.c branches/webkit/src/main/main.c branches/webkit/src/main/settings.c branches/webkit/win32/files.txt Modified: branches/webkit/ChangeLog =================================================================== --- branches/webkit/ChangeLog 2012-01-14 22:56:59 UTC (rev 4348) +++ branches/webkit/ChangeLog 2012-01-15 21:29:29 UTC (rev 4349) @@ -1,3 +1,8 @@ +2012-01-15 karl <cha...@us...> + + * integrated mwtalbert's WIN32 image patch with modifications, + including disabling WIN32 users' access to resize preference. + 2012-01-12 karl <cha...@us...> * patch around new webkit WIN32 lack of "file:" in <img src="...">. Modified: branches/webkit/src/gnome2/preferences_dialog.c =================================================================== --- branches/webkit/src/gnome2/preferences_dialog.c 2012-01-14 22:56:59 UTC (rev 4348) +++ branches/webkit/src/gnome2/preferences_dialog.c 2012-01-15 21:29:29 UTC (rev 4349) @@ -2703,6 +2703,9 @@ check_button.use_chapter_scroll = glade_xml_get_widget(gxml, "checkbutton_scroll"); check_button.use_imageresize = glade_xml_get_widget(gxml, "checkbutton_imageresize"); +#ifdef WIN32 + gtk_widget_hide(check_button.use_imageresize); +#endif check_button.use_verse_num_bold = glade_xml_get_widget(gxml, "checkbutton_verse_num_bold"); check_button.use_verse_num_bracket = glade_xml_get_widget(gxml, "checkbutton_verse_num_bracket"); check_button.use_verse_num_superscript = glade_xml_get_widget(gxml, "checkbutton_verse_num_superscript"); Modified: branches/webkit/src/gnome2/utilities.c =================================================================== --- branches/webkit/src/gnome2/utilities.c 2012-01-14 22:56:59 UTC (rev 4348) +++ branches/webkit/src/gnome2/utilities.c 2012-01-15 21:29:29 UTC (rev 4349) @@ -1491,10 +1491,10 @@ { #ifdef WIN32 gunichar2 *w_file; - gint64 rt; + gint rt; w_file = g_utf8_to_utf16(file, -1, NULL, NULL, NULL); GS_message(("opening file %ls", w_file)); - rt = (gint64)ShellExecuteW(NULL, L"open", w_file, NULL, NULL, SW_SHOWDEFAULT); + rt = (gint)ShellExecuteW(NULL, L"open", w_file, NULL, NULL, SW_SHOWDEFAULT); return rt > 32; #else @@ -2054,30 +2054,47 @@ // some modules play fast-n-loose with proper file spec. if (strncmp(path, "file://", 7) == 0) { +#ifdef WIN32 + /* due to need for local soup server */ + path += 5; + resized = g_string_append(resized, "http://127.0.0.1:7878/"); +#else path += 7; resized = g_string_append(resized, "file://"); +#endif } else if (strncmp(path, "file:", 5) == 0) { path += 5; +#ifdef WIN32 + resized = g_string_append(resized, "http://127.0.0.1:7878/"); +#else resized = g_string_append(resized, "file:"); +#endif } // else we have an odd case of a src="..." which does not - // begin with "file:"...which is now the WIN32 norm because + // begin with "file:"...which may become the WIN32 norm because // webkit is broken as of 2012 jan 12. // we will just take "path" as it stands. + GS_message((resized->str)); + // getting this far means we have a valid img src and file. // find closing '"' to determine pathname end. if ((end = strchr(path, '"')) == 0) continue; *end = '\0'; +#ifdef WIN32 + resized = g_string_append(resized, g_strdelimit(path, "\\", '/')); +#else resized = g_string_append(resized, path); +#endif image_retval = ImageDimensions(path, &image_x, &image_y); *end = '"'; resized = g_string_append_c(resized, '"'); path = end+1; trail = path; + GS_message((resized->str)); if (image_retval != 0) { if (no_warning_yet) { @@ -2106,6 +2123,7 @@ } resized = g_string_append(resized, trail); // remainder of text appended. + GS_message((resized->str)); return resized->str; } Modified: branches/webkit/src/main/main.c =================================================================== --- branches/webkit/src/main/main.c 2012-01-14 22:56:59 UTC (rev 4348) +++ branches/webkit/src/main/main.c 2012-01-15 21:29:29 UTC (rev 4349) @@ -48,6 +48,44 @@ #include <glib/gstdio.h> +#ifdef WIN32 + +/* + * this is, we hope, a temporary fix for the webkit image display problem. + * we instantiate a local web server (!) so as to self-serve image files + * whose size we have already otherwise determined using local path. + */ + +#include <libsoup/soup.h> + +static void +server_callback_media (SoupServer *server, + SoupMessage *msg, + const char *path, + GHashTable *query, + SoupClientContext *client, + gpointer user_data) +{ + char *contents; + gsize length; + GError *error = NULL; + gchar *real_path; + + real_path = g_strdup(path); + real_path++; + printf("file path is: %s", real_path); + + if (!g_file_test(real_path, G_FILE_TEST_EXISTS)) + return; + g_file_get_contents(real_path, &contents, &length, &error); + g_assert(!error); + + soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, + contents, length); + soup_message_set_status(msg, SOUP_STATUS_OK); +} +#endif /* WIN32 */ + /****************************************************************************** * Name * main @@ -70,6 +108,10 @@ int have_sword_url = FALSE; int have_tab_list = FALSE; gint base_step = 0; //needed for splash +#ifdef WIN32 + /* see comments on function immediately preceding. */ + SoupServer *server; +#endif #ifdef DEBUG GTimer *total; double d; @@ -116,6 +158,12 @@ /* we need an idea of $HOME that's convenient. */ /* this gives us linux-equivalent semantics. */ g_setenv("HOME", g_getenv("APPDATA"), TRUE); + + /* see comments near top of file. */ + server = soup_server_new(SOUP_SERVER_PORT, 7878, NULL); + soup_server_add_handler(server, "/", server_callback_media, + NULL, NULL); + soup_server_run_async(server); #endif /* WIN32 */ if (argc > 2) { Modified: branches/webkit/src/main/settings.c =================================================================== --- branches/webkit/src/main/settings.c 2012-01-14 22:56:59 UTC (rev 4348) +++ branches/webkit/src/main/settings.c 2012-01-15 21:29:29 UTC (rev 4349) @@ -852,6 +852,10 @@ xml_add_new_item_to_section("misc","imageresize","1"); settings.imageresize = 1; } +#ifdef WIN32 + /* due to hackery caused by webkit "no images" bug */ + settings.imageresize = 1; +#endif if ((buf = xml_get_value("editor", "spell_language"))) settings.spell_language = g_strdup(buf); Modified: branches/webkit/win32/files.txt =================================================================== --- branches/webkit/win32/files.txt 2012-01-14 22:56:59 UTC (rev 4348) +++ branches/webkit/win32/files.txt 2012-01-15 21:29:29 UTC (rev 4349) @@ -49,6 +49,7 @@ bin/libsoup-2.4-1.dll bin/libsqlite3-0.dll bin/libxslt-1.dll +bin/pthreadGC2.dll d etc/fonts etc/fonts/fonts.conf This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |