<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[116253] trunk/dports/graphics/gimp2</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/116253">116253</a></dd>
<dt>Author</dt> <dd>devans@macports.org</dd>
<dt>Date</dt> <dd>2014-01-22 18:44:34 -0800 (Wed, 22 Jan 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>gimp2: apply latest upstream patches, increment revision.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsgraphicsgimp2Portfile">trunk/dports/graphics/gimp2/Portfile</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsgraphicsgimp2filespatchcreatefilechooserbuttonbz699978diff">trunk/dports/graphics/gimp2/files/patch-create-filechooserbutton-bz699978.diff</a></li>
<li><a href="#trunkdportsgraphicsgimp2filespatchgimppaintoptionssetdefaultbrushsizediff">trunk/dports/graphics/gimp2/files/patch-gimp-paint-options-set-default-brush-size.diff</a></li>
<li><a href="#trunkdportsgraphicsgimp2filespatchremoveacceleratormarkerspythonfutooltipsdiff">trunk/dports/graphics/gimp2/files/patch-remove-accelerator-markers-python-fu-tooltips.diff</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsgraphicsgimp2Portfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/graphics/gimp2/Portfile (116252 => 116253)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/graphics/gimp2/Portfile        2014-01-23 02:41:50 UTC (rev 116252)
+++ trunk/dports/graphics/gimp2/Portfile        2014-01-23 02:44:34 UTC (rev 116253)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> conflicts gimp2-devel gimp3-devel
</span><span class="cx"> # please remember to update the gimp metapackage to match
</span><span class="cx"> version 2.8.10
</span><del>-revision 4
</del><ins>+revision 5
</ins><span class="cx"> license {GPL-2+ LGPL}
</span><span class="cx"> categories graphics
</span><span class="cx"> maintainers devans
</span><span class="lines">@@ -99,6 +99,9 @@
</span><span class="cx"> patch-letter-spacing-in-text-tool-bz720492.diff \
</span><span class="cx"> patch-shadow-layer-for-drop-shadow-filter-bz721058.diff \
</span><span class="cx"> patch-gimpressionist-background-paper-not-aligned-bz720711.diff \
</span><ins>+ patch-gimp-paint-options-set-default-brush-size.diff \
+ patch-remove-accelerator-markers-python-fu-tooltips.diff \
+ patch-create-filechooserbutton-bz699978.diff \
</ins><span class="cx"> patch-plug-ins-twain-tw_mac.c.diff
</span><span class="cx">
</span><span class="cx"> # gcc-4.2 5493 and 5666.3_13: gimpcpuaccel.c:180: error: can't find a register in class 'BREG' while reloading 'asm'
</span></span></pre></div>
<a id="trunkdportsgraphicsgimp2filespatchcreatefilechooserbuttonbz699978diff"></a>
<div class="addfile"><h4>Added: trunk/dports/graphics/gimp2/files/patch-create-filechooserbutton-bz699978.diff (0 => 116253)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/graphics/gimp2/files/patch-create-filechooserbutton-bz699978.diff         (rev 0)
+++ trunk/dports/graphics/gimp2/files/patch-create-filechooserbutton-bz699978.diff        2014-01-23 02:44:34 UTC (rev 116253)
</span><span class="lines">@@ -0,0 +1,111 @@
</span><ins>+From 20523c61aca40ac1189c444e77ee73f6aa81bdbb Mon Sep 17 00:00:00 2001
+From: João S. O. Bueno <gwidion@gmail.com>
+Date: Thu, 09 Jan 2014 02:44:55 +0000
+Subject: Creates a FileChooserbutton that can pick new filenames. Fixes #699978
+
+---
+diff --git a/plug-ins/pygimp/gimpfu.py b/plug-ins/pygimp/gimpfu.py
+index 5c7304d..8bd79fd 100644
+--- plug-ins/pygimp/gimpfu.py
++++ plug-ins/pygimp/gimpfu.py
+@@ -581,25 +581,61 @@ def _interact(proc_name, start_params):
+ def get_value(self):
+ return self.get_active()
+
+- def FileSelector(default=""):
++ def FileSelector(default="", title=None):
+ # FIXME: should this be os.path.separator? If not, perhaps explain why?
+ if default and default.endswith("/"):
+- selector = DirnameSelector
+ if default == "/": default = ""
++ return DirnameSelector(default)
+ else:
+- selector = FilenameSelector
+- return selector(default)
+-
+- class FilenameSelector(gtk.FileChooserButton):
+- def __init__(self, default="", save_mode=False):
+- gtk.FileChooserButton.__init__(self,
+- _("Python-Fu File Selection"))
+- self.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
++ return FilenameSelector(default, title=title)
++
++ class FilenameSelector(gtk.HBox):
++ #gimpfu.FileChooserButton
++ def __init__(self, default, save_mode=True, title=None):
++ super(FilenameSelector, self).__init__()
++ if not title:
++ self.title = _("Python-Fu File Selection")
++ else:
++ self.title = title
++ self.save_mode = save_mode
++ box = self
++ self.entry = gtk.Entry()
++ image = gtk.Image()
++ image.set_from_stock(gtk.STOCK_FILE, gtk.ICON_SIZE_BUTTON)
++ self.button = gtk.Button()
++ self.button.set_image(image)
++ box.pack_start(self.entry)
++ box.pack_start(self.button)
++ self.button.connect("clicked", self.pick_file)
+ if default:
+- self.set_filename(default)
++ self.entry.set_text(default)
++
++ def show(self):
++ super(FilenameSelector, self).show()
++ self.button.show()
++ self.entry.show()
++
++ def pick_file(self, widget):
++ entry = self.entry
++ dialog = gtk.FileChooserDialog(
++ title=self.title,
++ action=(gtk.FILE_CHOOSER_ACTION_SAVE
++ if self.save_mode else
++ gtk.FILE_CHOOSER_ACTION_OPEN),
++ buttons=(gtk.STOCK_CANCEL,
++ gtk.RESPONSE_CANCEL,
++ gtk.STOCK_OPEN,
++ gtk.RESPONSE_OK)
++ )
++ dialog.show_all()
++ response = dialog.run()
++ if response == gtk.RESPONSE_OK:
++ entry.set_text(dialog.get_filename())
++ dialog.destroy()
+
+ def get_value(self):
+- return self.get_filename()
++ return self.entry.get_text()
++
+
+ class DirnameSelector(gtk.FileChooserButton):
+ def __init__(self, default=""):
+@@ -719,17 +755,22 @@ def _interact(proc_name, start_params):
+ table.attach(label, 1, 2, i, i+1, xoptions=gtk.FILL)
+ label.show()
+
++ # Remove accelerator markers from tooltips
++ tooltip_text = desc.replace("_", "")
++
+ if pf_type in (PF_SPINNER, PF_SLIDER, PF_RADIO, PF_OPTION):
+ wid = _edit_mapping[pf_type](def_val, params[i][4])
++ elif pf_type in (PF_FILE, PF_FILENAME):
++ wid = _edit_mapping[pf_type](def_val, title= "%s - %s" %
++ (proc_name, tooltip_text))
+ else:
+ wid = _edit_mapping[pf_type](def_val)
+
++
+ label.set_mnemonic_widget(wid)
+
+ table.attach(wid, 2,3, i,i+1, yoptions=0)
+
+- # Remove accelerator markers from tooltips
+- tooltip_text = desc.replace("_", "")
+ if pf_type != PF_TEXT:
+ wid.set_tooltip_text(tooltip_text)
+ else:
+--
+cgit v0.9.2
</ins></span></pre></div>
<a id="trunkdportsgraphicsgimp2filespatchgimppaintoptionssetdefaultbrushsizediff"></a>
<div class="addfile"><h4>Added: trunk/dports/graphics/gimp2/files/patch-gimp-paint-options-set-default-brush-size.diff (0 => 116253)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/graphics/gimp2/files/patch-gimp-paint-options-set-default-brush-size.diff         (rev 0)
+++ trunk/dports/graphics/gimp2/files/patch-gimp-paint-options-set-default-brush-size.diff        2014-01-23 02:44:34 UTC (rev 116253)
</span><span class="lines">@@ -0,0 +1,273 @@
</span><ins>+From b4477d8e01e4b03121a9b834d35b69d0d8374638 Mon Sep 17 00:00:00 2001
+From: Michael Natterer <mitch@gimp.org>
+Date: Sat, 04 Jan 2014 14:45:25 +0000
+Subject: app: add gimp_paint_options_set_default_brush_size()
+
+and use it globally instead of two different methods, one of which was
+forgotten to be ported to the new aspect ratio range where 0.0 means
+1:1. Add a FIXME comment in paint_tools.pdb where I think setting the
+default size is a bug, see #721249.
+
+(cherry picked from commit ef858453724f6d4ca105fc9daec038fdff358f30)
+---
+diff --git a/app/core/gimpstrokeoptions.c b/app/core/gimpstrokeoptions.c
+index 832e99a..9505398 100644
+--- app/core/gimpstrokeoptions.c
++++ app/core/gimpstrokeoptions.c
+@@ -31,7 +31,6 @@
+ #include "config/gimpcoreconfig.h"
+
+ #include "gimp.h"
+-#include "gimpbrush.h"
+ #include "gimpcontext.h"
+ #include "gimpdashpattern.h"
+ #include "gimpmarshal.h"
+@@ -566,24 +565,10 @@ gimp_stroke_options_prepare (GimpStrokeOptions *options,
+
+ if (use_default_values)
+ {
+- GimpBrush *brush;
+- gdouble brush_size;
+- gint height;
+- gint width;
+-
+ paint_options = gimp_paint_options_new (paint_info);
+
+- brush = gimp_context_get_brush (context);
+-
+- if (GIMP_IS_BRUSH (brush))
+- {
+- gimp_brush_transform_size (brush, 1.0, 1.0, 0.0, &height, &width);
+- brush_size = MAX (height, width);
+-
+- g_object_set (paint_options,
+- "brush-size", brush_size,
+- NULL);
+- }
++ gimp_paint_options_set_default_brush_size (paint_options,
++ gimp_context_get_brush (context));
+
+ /* undefine the paint-relevant context properties and get them
+ * from the passed context
+diff --git a/app/paint/gimppaintoptions.c b/app/paint/gimppaintoptions.c
+index 10430a2..a624f2d 100644
+--- app/paint/gimppaintoptions.c
++++ app/paint/gimppaintoptions.c
+@@ -26,6 +26,7 @@
+ #include "paint-types.h"
+
+ #include "core/gimp.h"
++#include "core/gimpbrush.h"
+ #include "core/gimpimage.h"
+ #include "core/gimpdynamics.h"
+ #include "core/gimpdynamicsoutput.h"
+@@ -715,6 +716,29 @@ gimp_paint_options_get_brush_mode (GimpPaintOptions *paint_options)
+ }
+
+ void
++gimp_paint_options_set_default_brush_size (GimpPaintOptions *paint_options,
++ GimpBrush *brush)
++{
++ g_return_if_fail (GIMP_IS_PAINT_OPTIONS (paint_options));
++ g_return_if_fail (brush == NULL || GIMP_IS_BRUSH (brush));
++
++ if (! brush)
++ brush = gimp_context_get_brush (GIMP_CONTEXT (paint_options));
++
++ if (brush)
++ {
++ gint height;
++ gint width;
++
++ gimp_brush_transform_size (brush, 1.0, 0.0, 0.0, &height, &width);
++
++ g_object_set (paint_options,
++ "brush-size", (gdouble) MAX (height, width),
++ NULL);
++ }
++}
++
++void
+ gimp_paint_options_copy_brush_props (GimpPaintOptions *src,
+ GimpPaintOptions *dest)
+ {
+diff --git a/app/paint/gimppaintoptions.h b/app/paint/gimppaintoptions.h
+index 70c4e40..a5a84c9 100644
+--- app/paint/gimppaintoptions.h
++++ app/paint/gimppaintoptions.h
+@@ -132,6 +132,9 @@ gboolean gimp_paint_options_get_gradient_color (GimpPaintOptions *paint_options,
+ GimpBrushApplicationMode
+ gimp_paint_options_get_brush_mode (GimpPaintOptions *paint_options);
+
++void gimp_paint_options_set_default_brush_size (GimpPaintOptions *paint_options,
++ GimpBrush *brush);
++
+ void gimp_paint_options_copy_brush_props (GimpPaintOptions *src,
+ GimpPaintOptions *dest);
+ void gimp_paint_options_copy_dynamics_props (GimpPaintOptions *src,
+diff --git a/app/pdb/context-cmds.c b/app/pdb/context-cmds.c
+index bf4ab08..ac2fc64 100644
+--- app/pdb/context-cmds.c
++++ app/pdb/context-cmds.c
+@@ -28,12 +28,11 @@
+
+ #include "pdb-types.h"
+
+-#include "base/temp-buf.h"
+ #include "core/gimp.h"
+-#include "core/gimpbrush.h"
+ #include "core/gimpcontainer.h"
+ #include "core/gimpdatafactory.h"
+ #include "core/gimpparamspecs.h"
++#include "paint/gimppaintoptions.h"
+ #include "plug-in/gimpplugin-context.h"
+ #include "plug-in/gimpplugin.h"
+ #include "plug-in/gimppluginmanager.h"
+@@ -509,10 +508,7 @@ context_set_brush_default_size_invoker (GimpProcedure *procedure,
+ options = gimp_pdb_context_get_brush_options (GIMP_PDB_CONTEXT (context));
+
+ for (list = options; list; list = g_list_next (list))
+- g_object_set (list->data,
+- "brush-size", (gdouble) MAX (brush->mask->width,
+- brush->mask->height),
+- NULL);
++ gimp_paint_options_set_default_brush_size (list->data, brush);
+
+ g_list_free (options);
+ }
+diff --git a/app/pdb/paint-tools-cmds.c b/app/pdb/paint-tools-cmds.c
+index 99faf15..d1d6de3 100644
+--- app/pdb/paint-tools-cmds.c
++++ app/pdb/paint-tools-cmds.c
+@@ -26,7 +26,6 @@
+
+ #include "pdb-types.h"
+
+-#include "core/gimpbrush.h"
+ #include "core/gimpdrawable.h"
+ #include "core/gimpdynamics.h"
+ #include "core/gimppaintinfo.h"
+@@ -57,22 +56,15 @@ paint_tools_stroke (Gimp *gimp,
+ {
+ GimpPaintCore *core;
+ GimpCoords *coords;
+- GimpBrush *brush;
+ gboolean retval;
+- gdouble brush_size;
+- gint height, width;
+ gint i;
+ va_list args;
+
+ n_strokes /= 2; /* #doubles -> #points */
+
+- brush = gimp_context_get_brush (context);
+- gimp_brush_transform_size (brush, 1.0, 1.0, 0.0, &height, &width);
+- brush_size = MAX (height, width);
+-
+- g_object_set (options,
+- "brush-size", brush_size,
+- NULL);
++ /* FIXME: i'm most certain that this is wrong, see bug 721249 --mitch */
++ gimp_paint_options_set_default_brush_size (options,
++ gimp_context_get_brush (context));
+
+ /* undefine the paint-relevant context properties and get them
+ * from the current context
+diff --git a/app/tools/gimppaintoptions-gui.c b/app/tools/gimppaintoptions-gui.c
+index 9ba8f74..11ca180 100644
+--- app/tools/gimppaintoptions-gui.c
++++ app/tools/gimppaintoptions-gui.c
+@@ -23,9 +23,6 @@
+
+ #include "tools-types.h"
+
+-#include "base/temp-buf.h"
+-
+-#include "core/gimpbrush.h"
+ #include "core/gimptoolinfo.h"
+
+ #include "paint/gimppaintoptions.h"
+@@ -411,12 +408,7 @@ gimp_paint_options_gui_reset_size (GtkWidget *button,
+ GimpBrush *brush = gimp_context_get_brush (GIMP_CONTEXT (paint_options));
+
+ if (brush)
+- {
+- g_object_set (paint_options,
+- "brush-size", (gdouble) MAX (brush->mask->width,
+- brush->mask->height),
+- NULL);
+- }
++ gimp_paint_options_set_default_brush_size (paint_options, brush);
+ }
+
+ static void
+diff --git a/tools/pdbgen/pdb/context.pdb b/tools/pdbgen/pdb/context.pdb
+index 8e1447e..3dfbe4b 100644
+--- tools/pdbgen/pdb/context.pdb
++++ tools/pdbgen/pdb/context.pdb
+@@ -569,10 +569,7 @@ HELP
+ options = gimp_pdb_context_get_brush_options (GIMP_PDB_CONTEXT (context));
+
+ for (list = options; list; list = g_list_next (list))
+- g_object_set (list->data,
+- "brush-size", (gdouble) MAX (brush->mask->width,
+- brush->mask->height),
+- NULL);
++ gimp_paint_options_set_default_brush_size (list->data, brush);
+
+ g_list_free (options);
+ }
+@@ -2195,11 +2192,10 @@ CODE
+ );
+ }
+
+-@headers = qw("base/temp-buf.h"
+- "core/gimp.h"
+- "core/gimpbrush.h"
++@headers = qw("core/gimp.h"
+ "core/gimpcontainer.h"
+ "core/gimpdatafactory.h"
++ "paint/gimppaintoptions.h"
+ "libgimpconfig/gimpconfig.h"
+ "plug-in/gimpplugin.h"
+ "plug-in/gimpplugin-context.h"
+diff --git a/tools/pdbgen/pdb/paint_tools.pdb b/tools/pdbgen/pdb/paint_tools.pdb
+index f82c140..8544a56 100644
+--- tools/pdbgen/pdb/paint_tools.pdb
++++ tools/pdbgen/pdb/paint_tools.pdb
+@@ -981,22 +981,15 @@ paint_tools_stroke (Gimp *gimp,
+ {
+ GimpPaintCore *core;
+ GimpCoords *coords;
+- GimpBrush *brush;
+ gboolean retval;
+- gdouble brush_size;
+- gint height, width;
+ gint i;
+ va_list args;
+
+ n_strokes /= 2; /* #doubles -> #points */
+
+- brush = gimp_context_get_brush (context);
+- gimp_brush_transform_size (brush, 1.0, 1.0, 0.0, &height, &width);
+- brush_size = MAX (height, width);
+-
+- g_object_set (options,
+- "brush-size", brush_size,
+- NULL);
++ /* FIXME: i'm most certain that this is wrong, see bug 721249 --mitch */
++ gimp_paint_options_set_default_brush_size (options,
++ gimp_context_get_brush (context));
+
+ /* undefine the paint-relevant context properties and get them
+ * from the current context
+@@ -1036,7 +1029,6 @@ CODE
+
+ @headers = qw("libgimpmath/gimpmath.h"
+ "libgimpconfig/gimpconfig.h"
+- "core/gimpbrush.h"
+ "core/gimpdynamics.h"
+ "core/gimppaintinfo.h"
+ "paint/gimppaintcore.h"
+--
+cgit v0.9.2
</ins></span></pre></div>
<a id="trunkdportsgraphicsgimp2filespatchremoveacceleratormarkerspythonfutooltipsdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/graphics/gimp2/files/patch-remove-accelerator-markers-python-fu-tooltips.diff (0 => 116253)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/graphics/gimp2/files/patch-remove-accelerator-markers-python-fu-tooltips.diff         (rev 0)
+++ trunk/dports/graphics/gimp2/files/patch-remove-accelerator-markers-python-fu-tooltips.diff        2014-01-23 02:44:34 UTC (rev 116253)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+From e3a65f2ff5df4c7dd6b48b6e68989f4776e1a90e Mon Sep 17 00:00:00 2001
+From: João S. O. Bueno <gwidion@gmail.com>
+Date: Sun, 05 Jan 2014 06:40:04 +0000
+Subject: Remove accelerator markers from tooltips for python-fu dialogs
+
+---
+diff --git a/plug-ins/pygimp/gimpfu.py b/plug-ins/pygimp/gimpfu.py
+index ba833c2..5c7304d 100644
+--- plug-ins/pygimp/gimpfu.py
++++ plug-ins/pygimp/gimpfu.py
+@@ -728,11 +728,13 @@ def _interact(proc_name, start_params):
+
+ table.attach(wid, 2,3, i,i+1, yoptions=0)
+
++ # Remove accelerator markers from tooltips
++ tooltip_text = desc.replace("_", "")
+ if pf_type != PF_TEXT:
+- wid.set_tooltip_text(desc)
++ wid.set_tooltip_text(tooltip_text)
+ else:
+ # Attach tip to TextView, not to ScrolledWindow
+- wid.view.set_tooltip_text(desc)
++ wid.view.set_tooltip_text(tooltip_text)
+ wid.show()
+
+ wid.desc = desc
+--
+cgit v0.9.2
</ins></span></pre>
</div>
</div>
</body>
</html>