--- a/components/vim/vim72-patches/7.2.442 Thu Jul 07 19:05:29 2011 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +0,0 @@
-To: [email protected]
-Subject: Patch 7.2.442
-Fcc: outbox
-From: Bram Moolenaar <[email protected]>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.442 (after 7.2.201)
-Problem: Copy/paste with OpenOffice doesn't work.
-Solution: Do not offer the HTML target when it is not supported. (James
- Vega)
-Files: src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro
-
-
-*** ../vim-7.2.441/src/gui_gtk_x11.c 2010-02-11 18:19:32.000000000 +0100
---- src/gui_gtk_x11.c 2010-06-05 12:42:23.000000000 +0200
-***************
-*** 1433,1438 ****
---- 1433,1442 ----
- }
- #endif /* !HAVE_GTK2 */
-
-+ /* Chop off any traiing NUL bytes. OpenOffice sends these. */
-+ while (len > 0 && text[len - 1] == NUL)
-+ --len;
-+
- clip_yank_selection(motion_type, text, (long)len, cbd);
- received_selection = RS_OK;
- vim_free(tmpbuf);
-***************
-*** 3463,3468 ****
---- 3467,3532 ----
- #endif /* FEAT_GUI_TABLINE */
-
- /*
-+ * Add selection targets for PRIMARY and CLIPBOARD selections.
-+ */
-+ void
-+ gui_gtk_set_selection_targets(void)
-+ {
-+ int i, j = 0;
-+ int n_targets = N_SELECTION_TARGETS;
-+ GtkTargetEntry targets[N_SELECTION_TARGETS];
-+
-+ for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
-+ {
-+ #ifdef FEAT_MBYTE
-+ /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
-+ * return something, instead of trying another target. Therefore only
-+ * offer TARGET_HTML when it works. */
-+ if (!clip_html && selection_targets[i].info == TARGET_HTML)
-+ n_targets--;
-+ else
-+ #endif
-+ targets[j++] = selection_targets[i];
-+ }
-+
-+ gtk_selection_clear_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY);
-+ gtk_selection_clear_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom);
-+ gtk_selection_add_targets(gui.drawarea,
-+ (GdkAtom)GDK_SELECTION_PRIMARY,
-+ targets, n_targets);
-+ gtk_selection_add_targets(gui.drawarea,
-+ (GdkAtom)clip_plus.gtk_sel_atom,
-+ targets, n_targets);
-+ }
-+
-+ /*
-+ * Set up for receiving DND items.
-+ */
-+ void
-+ gui_gtk_set_dnd_targets(void)
-+ {
-+ int i, j = 0;
-+ int n_targets = N_DND_TARGETS;
-+ GtkTargetEntry targets[N_DND_TARGETS];
-+
-+ for (i = 0; i < (int)N_DND_TARGETS; ++i)
-+ {
-+ #ifdef FEAT_MBYTE
-+ if (!clip_html && selection_targets[i].info == TARGET_HTML)
-+ n_targets--;
-+ else
-+ #endif
-+ targets[j++] = dnd_targets[i];
-+ }
-+
-+ gtk_drag_dest_unset(gui.drawarea);
-+ gtk_drag_dest_set(gui.drawarea,
-+ GTK_DEST_DEFAULT_ALL,
-+ targets, n_targets,
-+ GDK_ACTION_COPY);
-+ }
-+
-+ /*
- * Initialize the GUI. Create all the windows, set up all the callbacks etc.
- * Returns OK for success, FAIL when the GUI can't be started.
- */
-***************
-*** 3925,3939 ****
- gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received",
- GTK_SIGNAL_FUNC(selection_received_cb), NULL);
-
-! /*
-! * Add selection targets for PRIMARY and CLIPBOARD selections.
-! */
-! gtk_selection_add_targets(gui.drawarea,
-! (GdkAtom)GDK_SELECTION_PRIMARY,
-! selection_targets, N_SELECTION_TARGETS);
-! gtk_selection_add_targets(gui.drawarea,
-! (GdkAtom)clip_plus.gtk_sel_atom,
-! selection_targets, N_SELECTION_TARGETS);
-
- gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
- GTK_SIGNAL_FUNC(selection_get_cb), NULL);
---- 3989,3995 ----
- gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received",
- GTK_SIGNAL_FUNC(selection_received_cb), NULL);
-
-! gui_gtk_set_selection_targets();
-
- gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
- GTK_SIGNAL_FUNC(selection_get_cb), NULL);
-***************
-*** 4057,4063 ****
- return TRUE;
- }
-
--
- /*
- * Open the GUI window which was created by a call to gui_mch_init().
- */
---- 4113,4118 ----
-***************
-*** 4225,4237 ****
- GTK_SIGNAL_FUNC(form_configure_event), NULL);
-
- #ifdef FEAT_DND
-! /*
-! * Set up for receiving DND items.
-! */
-! gtk_drag_dest_set(gui.drawarea,
-! GTK_DEST_DEFAULT_ALL,
-! dnd_targets, N_DND_TARGETS,
-! GDK_ACTION_COPY);
-
- gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
- GTK_SIGNAL_FUNC(drag_data_received_cb), NULL);
---- 4280,4287 ----
- GTK_SIGNAL_FUNC(form_configure_event), NULL);
-
- #ifdef FEAT_DND
-! /* Set up for receiving DND items. */
-! gui_gtk_set_dnd_targets();
-
- gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
- GTK_SIGNAL_FUNC(drag_data_received_cb), NULL);
-***************
-*** 4428,4434 ****
- /* this will cause the proper resizement to happen too */
- update_window_manager_hints(0, 0);
-
-! #else /* HAVE_GTK2 */
- /* this will cause the proper resizement to happen too */
- if (gtk_socket_id == 0)
- update_window_manager_hints(0, 0);
---- 4478,4484 ----
- /* this will cause the proper resizement to happen too */
- update_window_manager_hints(0, 0);
-
-! #else
- /* this will cause the proper resizement to happen too */
- if (gtk_socket_id == 0)
- update_window_manager_hints(0, 0);
-***************
-*** 4444,4457 ****
- else
- update_window_manager_hints(width, height);
-
-! #if 0
- if (!resize_idle_installed)
- {
- g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
- &force_shell_resize_idle, NULL, NULL);
- resize_idle_installed = TRUE;
- }
-! #endif
- /*
- * Wait until all events are processed to prevent a crash because the
- * real size of the drawing area doesn't reflect Vim's internal ideas.
---- 4494,4507 ----
- else
- update_window_manager_hints(width, height);
-
-! # if 0
- if (!resize_idle_installed)
- {
- g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
- &force_shell_resize_idle, NULL, NULL);
- resize_idle_installed = TRUE;
- }
-! # endif
- /*
- * Wait until all events are processed to prevent a crash because the
- * real size of the drawing area doesn't reflect Vim's internal ideas.
-*** ../vim-7.2.441/src/option.c 2010-05-14 17:32:53.000000000 +0200
---- src/option.c 2010-06-05 12:19:38.000000000 +0200
-***************
-*** 7112,7117 ****
---- 7112,7124 ----
- clip_html = new_html;
- vim_free(clip_exclude_prog);
- clip_exclude_prog = new_exclude_prog;
-+ #ifdef FEAT_GUI_GTK
-+ if (gui.in_use)
-+ {
-+ gui_gtk_set_selection_targets();
-+ gui_gtk_set_dnd_targets();
-+ }
-+ #endif
- }
- else
- vim_free(new_exclude_prog);
-*** ../vim-7.2.441/src/proto/gui_gtk_x11.pro 2009-09-23 18:14:13.000000000 +0200
---- src/proto/gui_gtk_x11.pro 2010-06-05 12:31:22.000000000 +0200
-***************
-*** 9,14 ****
---- 9,16 ----
- int gui_mch_showing_tabline __ARGS((void));
- void gui_mch_update_tabline __ARGS((void));
- void gui_mch_set_curtab __ARGS((int nr));
-+ void gui_gtk_set_selection_targets __ARGS((void));
-+ void gui_gtk_set_dnd_targets __ARGS((void));
- int gui_mch_init __ARGS((void));
- void gui_mch_forked __ARGS((void));
- void gui_mch_new_colors __ARGS((void));
-*** ../vim-7.2.441/src/version.c 2010-05-30 16:55:17.000000000 +0200
---- src/version.c 2010-06-05 12:48:01.000000000 +0200
-***************
-*** 683,684 ****
---- 683,686 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 442,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-158. You get a tuner card so you can watch TV while surfing.
-
- /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///