diff options
20 files changed, 1191 insertions, 0 deletions
diff --git a/graphics/gpaint/README b/graphics/gpaint/README new file mode 100644 index 000000000000..cf767f945d01 --- /dev/null +++ b/graphics/gpaint/README @@ -0,0 +1,11 @@ +This is gpaint (GNU Paint), a small-scale GTK2 painting program, based +on xpaint, along the lines of "Paintbrush". + +Currently gpaint has the following features: +- Drawing tools such as ovals, freehand, polygon and text, with fill + or shadow for polygons and closed freehand shapes. +- Cut and paste by selecting irregular regions or polygons. +- Preliminary print support using gnome-print. +- Modern, ease-to-use user interface with tool and color palettes. +- Multiple-image editing in a single instance of the program. +- All the image processing features present in xpaint. diff --git a/graphics/gpaint/doinst.sh b/graphics/gpaint/doinst.sh new file mode 100644 index 000000000000..5fb28930db0b --- /dev/null +++ b/graphics/gpaint/doinst.sh @@ -0,0 +1,3 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi diff --git a/graphics/gpaint/gpaint.1 b/graphics/gpaint/gpaint.1 new file mode 100644 index 000000000000..d49bc9723bc4 --- /dev/null +++ b/graphics/gpaint/gpaint.1 @@ -0,0 +1,53 @@ +.TH GPAINT 1 "June 7, 2001" + +.SH NAME +gpaint \- a small easy to use paint program for GNOME + +.SH SYNOPSIS +gpaint [filename]... + +.SH DESCRIPTION +This manual page briefly documents gpaint (GNU Paint), a small-scale +painting program for GNOME, the GNU Desktop Environment. gpaint does +not attempt to compete with GIMP, it is just a simple drawing package +based on xpaint, along the lines of 'Paintbrush' from a popular +non-free operating system. + +gpaint is still work in progress and many features are still being +developed. However, gpaint is usable and useful for simple image +editing tasks. + +.SH FEATURES +Currently gpaint has the following features: +.TP +* Drawing tools such as ovals, freehand, polygon and text, with fill or shadow for polygons and closed freehand shapes. +.TP +* Cut and paste by selecting irregular regions or polygons. +.TP +* Preliminary print support using gnome-print. +.TP +* Modern, easy to use user interface with tool and color palettes. +.TP +* Multiple-image editing in a single instance of the program. +.TP +* All the image processing features present in xpaint. + +.SH TODO +Future plans include the implementation of zooming in/out, image +scaling/rotation, and turning gpaint into a Bonobo component for +simple image editing tasks inside other programs. + +.SH BUGS +For bugs or general comments you can send mail to the developers list <gpaint-develop@gnu.org>, or you can enter a bug into the Debian Bug Tracking +system. Details of how to use this system can be found on +http://bugs.debian.org/. + +.SH SEE-ALSO +\fB X (1), gnome (1)\fP + +.SH AUTHOR +This manual page was written by Stephen Stafford +<stephen@clothcat.demon.co.uk>, for the Debian GNU/Linux system, but +may be used by others. It is based on the README file included in +the source distribution of gpaint which was written by Andy Tai +<atai@atai.org>. diff --git a/graphics/gpaint/gpaint.SlackBuild b/graphics/gpaint/gpaint.SlackBuild new file mode 100644 index 000000000000..76c486b6c27e --- /dev/null +++ b/graphics/gpaint/gpaint.SlackBuild @@ -0,0 +1,124 @@ +#!/bin/sh + +# Slackware build script for gpaint + +# Copyright 2013 Petar Petrov, ppetrov@paju.oulu.fi +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=gpaint +VERSION=${VERSION:-0.3.3} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-2-$VERSION +tar xvf $CWD/${PRGNAM}_${VERSION}.orig.tar.gz +cd $PRGNAM-2-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Thanks to Debian for the patches! And the man page and icon! And the +# whole source tarball, actually... +patch -p1 -i $CWD/patches/01_drawing.patch +patch -p1 -i $CWD/patches/02_remove_menu_h_reference.patch +patch -p1 -i $CWD/patches/09_fix_menu_entry.patch +patch -p1 -i $CWD/patches/10_fix_crash_on_font_select.patch +patch -p1 -i $CWD/patches/11_fix_image_rotation.patch +patch -p1 -i $CWD/patches/20_fix_line_width_combo.patch +patch -p1 -i $CWD/patches/21_fix_crash_on_fill_button_click.patch +patch -p1 -i $CWD/patches/22_fix_not_printable_string.patch +patch -p1 -i $CWD/patches/23_add_accelerator_keys.patch +patch -p1 -i $CWD/patches/24_fix_crash_on_failed_write.patch +patch -p1 -i $CWD/patches/25_fix_color_selection.patch +patch -p1 -i $CWD/patches/26_fix_toolbar.patch + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --build=$ARCH-slackware-linux + +make +make install DESTDIR=$PKG + +install -D -m644 $CWD/$PRGNAM.1 $PKG/usr/man/man1/$PRGNAM.1 + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING INSTALL NEWS README THANKS TODO \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +# Menu item and icon +mkdir -p $PKG/usr/share/{applications,pixmaps} +cp $CWD/$PRGNAM.desktop $PKG/usr/share/applications +cp $CWD/$PRGNAM.png $PKG/usr/share/pixmaps + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/graphics/gpaint/gpaint.desktop b/graphics/gpaint/gpaint.desktop new file mode 100644 index 000000000000..81e89d9e8220 --- /dev/null +++ b/graphics/gpaint/gpaint.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Categories=Graphics; +Exec=gpaint-2 +Icon=gpaint.png +Name=gPaint +StartupNotify=false +Type=Application diff --git a/graphics/gpaint/gpaint.info b/graphics/gpaint/gpaint.info new file mode 100644 index 000000000000..836fabda7ac1 --- /dev/null +++ b/graphics/gpaint/gpaint.info @@ -0,0 +1,10 @@ +PRGNAM="gpaint" +VERSION="0.3.3" +HOMEPAGE="http://www.gnu.org/software/gpaint/" +DOWNLOAD="http://ftp.de.debian.org/debian/pool/main/g/gpaint/gpaint_0.3.3.orig.tar.gz" +MD5SUM="037cc283d2cdd806dbdc462839bb3b72" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Petar Petrov" +EMAIL="ppetrov@paju.oulu.fi" diff --git a/graphics/gpaint/gpaint.png b/graphics/gpaint/gpaint.png Binary files differnew file mode 100644 index 000000000000..43751d4f2024 --- /dev/null +++ b/graphics/gpaint/gpaint.png diff --git a/graphics/gpaint/patches/01_drawing.patch b/graphics/gpaint/patches/01_drawing.patch new file mode 100644 index 000000000000..9b587f9f926c --- /dev/null +++ b/graphics/gpaint/patches/01_drawing.patch @@ -0,0 +1,21 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Fixes compiling with recent versions of libgtk + Newer versions of Gtk+ don't define the GTK_RESPONSE_DISCARD symbol, so we + replace its ocurrence by GTK_RESPONSE_NO to make gpaint build without + errors. +Bug: https://savannah.gnu.org/bugs/index.php?21703 +Forwarded: https://savannah.gnu.org/patch/?7047 + +Index: b/src/drawing.c +=================================================================== +--- a/src/drawing.c 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/drawing.c 2009-12-19 17:12:10.000000000 -0200 +@@ -427,7 +427,7 @@ + _("Do you want to save the changes you made to \"%s\"?\nYour changes will be lost if you don't save them."), + drawing->filename->str); + #ifdef GTK_STOCK_DISCARD +- gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_DISCARD,GTK_RESPONSE_DISCARD); ++ gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_DISCARD,GTK_RESPONSE_NO); + #else + gtk_dialog_add_button(GTK_DIALOG(dialog), _("Close _without Saving"), GTK_RESPONSE_NO); + #endif /* !GTK_STOCK_DISCARD */ diff --git a/graphics/gpaint/patches/02_remove_menu_h_reference.patch b/graphics/gpaint/patches/02_remove_menu_h_reference.patch new file mode 100644 index 000000000000..192a457bcc22 --- /dev/null +++ b/graphics/gpaint/patches/02_remove_menu_h_reference.patch @@ -0,0 +1,16 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Removes reference to non-existent menu.h file +Forwarded: https://savannah.gnu.org/patch/?7050 + +Index: b/src/menu.c +=================================================================== +--- a/src/menu.c 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/menu.c 2009-12-19 17:12:10.000000000 -0200 +@@ -34,7 +34,6 @@ + #include "image.h" + #include "image_processing.h" + #include "tool_palette.h" +-#include "menu.h" + #include "print.h" + #include "file.h" + #include "text.h" diff --git a/graphics/gpaint/patches/09_fix_menu_entry.patch b/graphics/gpaint/patches/09_fix_menu_entry.patch new file mode 100644 index 000000000000..309a548a66f8 --- /dev/null +++ b/graphics/gpaint/patches/09_fix_menu_entry.patch @@ -0,0 +1,25 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Fixes the gpaint.desktop file + Change executable and icon filenames according to changes applied in the + Debian packaging. + +Index: b/gpaint.desktop +=================================================================== +--- a/gpaint.desktop 2009-12-19 17:11:48.000000000 -0200 ++++ b/gpaint.desktop 2009-12-19 17:12:10.000000000 -0200 +@@ -3,11 +3,9 @@ + Comment=A small-scale painting program for GNOME, the GNU Desktop + Comment[fr]=Un petit outil de dessin pour GNOME, le desktop GNU + Comment[pt_BR]=Um pequeno programa de desenho para o GNOME, o Desktop GNU +-TryExec=gpaint-2 +-Exec=gpaint-2 +-Icon=gnome-logo-icon-transparent.png ++TryExec=gpaint ++Exec=gpaint ++Icon=gpaint.svg + Terminal=0 + Type=Application +- +- +- ++Categories=Graphics;2DGraphics;RasterGraphics; diff --git a/graphics/gpaint/patches/10_fix_crash_on_font_select.patch b/graphics/gpaint/patches/10_fix_crash_on_font_select.patch new file mode 100644 index 000000000000..868c05a56969 --- /dev/null +++ b/graphics/gpaint/patches/10_fix_crash_on_font_select.patch @@ -0,0 +1,97 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Avoids crash on font selection + Makes the font selection button active only when the text tool is selected, + avoiding a crash that would occur if it is clicked without selectiong the + text tool. +Bug-Debian: http://bugs.debian.org/497201 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gpaint/+bug/262889 +Forwarded: https://savannah.gnu.org/patch/?6645 + +Index: b/gpaint.glade +=================================================================== +--- a/gpaint.glade 2009-12-19 17:11:48.000000000 -0200 ++++ b/gpaint.glade 2009-12-19 17:12:10.000000000 -0200 +@@ -1137,6 +1137,7 @@ + <child> + <widget class="GtkFontButton" id="fontpicker"> + <property name="visible">True</property> ++ <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="show_style">True</property> + <property name="show_size">True</property> +Index: b/src/main.c +=================================================================== +--- a/src/main.c 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/main.c 2009-12-19 17:12:10.000000000 -0200 +@@ -73,6 +73,10 @@ + tool_palette_set_active_button(main_window, "pen_button"); + /* make the pen tool the default initial tool so the user can draw right away */ + ++ gpaint_tool *text_tool = tool_palette_get_tool(main_window, "text"); ++ widget = lookup_widget(main_window, "fontpicker"); ++ text_set_fontpicker(text_tool, widget); ++ + #if (!defined(HAVE_GTK_PRINT) && !defined(HAVE_GNOME_PRINT)) + /* disable print menus and buttons if no print support available*/ + widget = lookup_widget(main_window, "print_button"); +Index: b/src/text.c +=================================================================== +--- a/src/text.c 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/text.c 2009-12-19 17:12:10.000000000 -0200 +@@ -54,6 +54,7 @@ + GString *textbuf; + int max_width; + int max_height; ++ GtkFontButton *fontpicker; + } gpaint_text; + + +@@ -94,6 +95,7 @@ + GPAINT_TOOL(text)->commit_change = text_commit_change; + + text->textbuf = g_string_new(0); ++ text->fontpicker = NULL; + return GPAINT_TOOL(text); + } + +@@ -118,6 +120,7 @@ + g_string_printf(text->textbuf, ""); + text->timer = g_timeout_add(TEXT_CURSOR_BLINK_RATE, + (GtkFunction)(text_handle_timeout), text); ++ gtk_widget_set_sensitive(GTK_WIDGET(text->fontpicker), TRUE); + } + + static void +@@ -145,7 +148,7 @@ + text_draw_string(text); + } + text_clear(text); +- ++ gtk_widget_set_sensitive(GTK_WIDGET(text->fontpicker), FALSE); + } + + static gboolean +@@ -474,6 +477,8 @@ + + } + +- +- +- ++void text_set_fontpicker(gpaint_tool *tool, GtkFontButton *fontpicker) ++{ ++ gpaint_text *text = GPAINT_TEXT(tool); ++ text->fontpicker = fontpicker; ++} +Index: b/src/text.h +=================================================================== +--- a/src/text.h 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/text.h 2009-12-19 17:12:10.000000000 -0200 +@@ -30,6 +30,6 @@ + + + gpaint_tool* text_create(const char *name); +- ++void text_set_fontpicker(gpaint_tool *tool, GtkFontButton *fontpicker); + + #endif diff --git a/graphics/gpaint/patches/11_fix_image_rotation.patch b/graphics/gpaint/patches/11_fix_image_rotation.patch new file mode 100644 index 000000000000..4990b52c2861 --- /dev/null +++ b/graphics/gpaint/patches/11_fix_image_rotation.patch @@ -0,0 +1,110 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Fixes rotation operations + Implement the rotation in multiples of 90 degrees using the + gdk_pixbuf_rotate_simple function instead of the custom (and broken) + rotation algorithm +Bug-Debian: http://bugs.debian.org/497487 +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/262942 +Forwarded: https://savannah.gnu.org/patch/?6643 + +Index: b/src/drawing.c +=================================================================== +--- a/src/drawing.c 2009-12-19 17:12:10.000000000 -0200 ++++ b/src/drawing.c 2009-12-19 17:12:11.000000000 -0200 +@@ -462,12 +462,23 @@ + } + + void +-drawing_rotate(gpaint_drawing *drawing, double degrees) ++drawing_rotate(gpaint_drawing *drawing, int degrees) + { + gpaint_image *image = drawing_create_image(drawing); + if (image) + { +- image_rotate(image, degrees); ++ switch (degrees) ++ { ++ case 0: ++ case 90: ++ case 180: ++ case 270: ++ image_rotate_simple(image, degrees); ++ break; ++ default: ++ image_rotate(image, degrees); ++ break; ++ } + + /* copy rotated image on the pixmap */ + gdk_pixmap_unref(drawing->backing_pixmap); +Index: b/src/drawing.h +=================================================================== +--- a/src/drawing.h 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/drawing.h 2009-12-19 17:12:11.000000000 -0200 +@@ -58,6 +58,6 @@ + void drawing_clear(gpaint_drawing *drawing); + void drawing_clear_selection(gpaint_drawing *drawing, gpaint_point_array *points); + gboolean drawing_prompt_to_save(gpaint_drawing *drawing); +-void drawing_rotate(gpaint_drawing *drawing, double degrees); ++void drawing_rotate(gpaint_drawing *drawing, int degrees); + + #endif +Index: b/src/image.c +=================================================================== +--- a/src/image.c 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/image.c 2009-12-19 17:12:11.000000000 -0200 +@@ -628,6 +628,27 @@ + return 0; + } + ++int ++image_rotate_simple (gpaint_image *image, int degrees) ++{ ++ GdkPixbuf *newpixbuf; ++ ++ switch (degrees) ++ { ++ case GDK_PIXBUF_ROTATE_NONE: ++ case GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE: ++ case GDK_PIXBUF_ROTATE_UPSIDEDOWN: ++ case GDK_PIXBUF_ROTATE_CLOCKWISE: ++ newpixbuf = gdk_pixbuf_rotate_simple (image->pixbuf, degrees); ++ gdk_pixbuf_unref (image->pixbuf); ++ image->pixbuf = newpixbuf; ++ return 0; ++ break; ++ default: ++ return 1; ++ } ++} ++ + + GdkPixbuf* image_pixbuf(gpaint_image* image) { + return image->pixbuf; +Index: b/src/image.h +=================================================================== +--- a/src/image.h 2009-12-19 17:11:48.000000000 -0200 ++++ b/src/image.h 2009-12-19 17:12:11.000000000 -0200 +@@ -45,5 +45,6 @@ + int image_flip_x(gpaint_image *image); + int image_flip_y(gpaint_image *image); + int image_rotate(gpaint_image *image, double radians); ++int image_rotate_simple(gpaint_image *image, int degrees); + GdkPixbuf* image_pixbuf(gpaint_image *image); + #endif +Index: b/src/menu.c +=================================================================== +--- a/src/menu.c 2009-12-19 17:12:10.000000000 -0200 ++++ b/src/menu.c 2009-12-19 17:12:11.000000000 -0200 +@@ -486,9 +486,9 @@ + + sscanf(name, "rotate_%c%d_menu", &sign, °rees); + debug2("sign = %c degrees = %d", sign, degrees); +- if (sign=='n') ++ if (sign=='p') + { +- degrees *= -1; ++ degrees = 360 - degrees; + } + canvas_focus_lost(canvas); + drawing_rotate(canvas->drawing, degrees); diff --git a/graphics/gpaint/patches/20_fix_line_width_combo.patch b/graphics/gpaint/patches/20_fix_line_width_combo.patch new file mode 100644 index 000000000000..61cabff2908e --- /dev/null +++ b/graphics/gpaint/patches/20_fix_line_width_combo.patch @@ -0,0 +1,352 @@ +Author: Thomas Viehmann <tv@beamnet.de> +Description: Fix line width combo box + Fixes the line width combo box by puting items in the drop down + menu in the gpaint.glade file. +Bug-Debian: http://bugs.debian.org/497484 +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/209173 +Forwarded: https://savannah.gnu.org/patch/?6644 + +Index: b/gpaint.glade +=================================================================== +--- a/gpaint.glade 2009-12-19 17:12:10.000000000 -0200 ++++ b/gpaint.glade 2009-12-19 17:12:11.000000000 -0200 +@@ -1230,6 +1230,34 @@ + <property name="column_spacing">0</property> + + <child> ++ <widget class="GtkLabel" id="Line Width"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">line width</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_CENTER</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0.5</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ <signal name="realize" handler="on_small_label_realize"/> ++ </widget> ++ <packing> ++ <property name="left_attach">0</property> ++ <property name="right_attach">1</property> ++ <property name="top_attach">0</property> ++ <property name="bottom_attach">1</property> ++ <property name="x_options"></property> ++ <property name="y_options"></property> ++ </packing> ++ </child> ++ <child> + <widget class="GtkCombo" id="line_width_combo"> + <property name="width_request">60</property> + <property name="height_request">25</property> +@@ -1239,27 +1267,264 @@ + <property name="case_sensitive">False</property> + <property name="enable_arrow_keys">True</property> + <property name="enable_arrows_always">False</property> +- <signal name="check_resize" handler="on_line_width_combo_check_resize"/> + <signal name="add" handler="on_line_width_combo_add"/> ++ <signal name="check_resize" handler="on_line_width_combo_check_resize"/> + + <child internal-child="entry"> +- <widget class="GtkEntry" id="entry1"> ++ <widget class="GtkEntry" id="line_width_combo_combo_entry"> + <property name="visible">True</property> ++ <property name="tooltip" translatable="yes">line width</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> +- <property name="invisible_char">•</property> ++ <property name="invisible_char">*</property> + <property name="activates_default">False</property> ++ <signal name="changed" handler="on_line_width_combo_combo_entry_changed"/> + </widget> + </child> + + <child internal-child="list"> +- <widget class="GtkList" id="list1"> ++ <widget class="GtkList" id="convertwidget1"> + <property name="visible">True</property> + <property name="selection_mode">GTK_SELECTION_BROWSE</property> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget2"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget3"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">1</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget4"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget5"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">2</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget6"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget7"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">3</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget8"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget9"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">4</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget10"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget11"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">5</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget12"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget13"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">6</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget14"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget15"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">7</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget16"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget17"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">8</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> ++ ++ <child> ++ <widget class="GtkListItem" id="convertwidget18"> ++ <property name="visible">True</property> ++ ++ <child> ++ <widget class="GtkLabel" id="convertwidget19"> ++ <property name="visible">True</property> ++ <property name="label" translatable="yes">9</property> ++ <property name="use_underline">False</property> ++ <property name="use_markup">False</property> ++ <property name="justify">GTK_JUSTIFY_LEFT</property> ++ <property name="wrap">False</property> ++ <property name="selectable">False</property> ++ <property name="xalign">0</property> ++ <property name="yalign">0.5</property> ++ <property name="xpad">0</property> ++ <property name="ypad">0</property> ++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> ++ <property name="width_chars">-1</property> ++ <property name="single_line_mode">False</property> ++ <property name="angle">0</property> ++ </widget> ++ </child> ++ </widget> ++ </child> + </widget> + </child> + </widget> +@@ -1272,35 +1537,6 @@ + <property name="y_options"></property> + </packing> + </child> +- +- <child> +- <widget class="GtkLabel" id="Line Width"> +- <property name="visible">True</property> +- <property name="label" translatable="yes">line width</property> +- <property name="use_underline">False</property> +- <property name="use_markup">False</property> +- <property name="justify">GTK_JUSTIFY_CENTER</property> +- <property name="wrap">False</property> +- <property name="selectable">False</property> +- <property name="xalign">0.5</property> +- <property name="yalign">0.5</property> +- <property name="xpad">0</property> +- <property name="ypad">0</property> +- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> +- <property name="width_chars">-1</property> +- <property name="single_line_mode">False</property> +- <property name="angle">0</property> +- <signal name="realize" handler="on_small_label_realize"/> +- </widget> +- <packing> +- <property name="left_attach">0</property> +- <property name="right_attach">1</property> +- <property name="top_attach">0</property> +- <property name="bottom_attach">1</property> +- <property name="x_options"></property> +- <property name="y_options"></property> +- </packing> +- </child> + </widget> + </child> + </widget> diff --git a/graphics/gpaint/patches/21_fix_crash_on_fill_button_click.patch b/graphics/gpaint/patches/21_fix_crash_on_fill_button_click.patch new file mode 100644 index 000000000000..132b3490302a --- /dev/null +++ b/graphics/gpaint/patches/21_fix_crash_on_fill_button_click.patch @@ -0,0 +1,25 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: fix crash on fill button click + Avoid crashing when clicking on fill button by checking that + tool->canvas->drawing_area is not null before casting it to GtkWidget +Bug-Debian: http://bugs.debian.org/544162 +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/227174 +Bug: https://savannah.gnu.org/bugs/?25117 +Forwarded: https://savannah.gnu.org/patch/?7045 + +Index: pkg-gpaint/src/text.c +=================================================================== +--- pkg-gpaint.orig/src/text.c 2009-12-22 21:03:29.000000000 -0200 ++++ pkg-gpaint/src/text.c 2009-12-23 13:01:33.000000000 -0200 +@@ -156,7 +156,10 @@ + { + debug_fn(); + GtkStyle *style; +- GtkWidget *widget = GTK_WIDGET(tool->canvas->drawing_area); ++ GtkWidget *widget = NULL; ++ ++ if ((tool->canvas == NULL) || (tool->canvas->drawing_area == NULL)) return FALSE; ++ widget = GTK_WIDGET(tool->canvas->drawing_area); + style = gtk_widget_get_style(widget); + g_assert(style); + diff --git a/graphics/gpaint/patches/22_fix_not_printable_string.patch b/graphics/gpaint/patches/22_fix_not_printable_string.patch new file mode 100644 index 000000000000..6e2b98734f2f --- /dev/null +++ b/graphics/gpaint/patches/22_fix_not_printable_string.patch @@ -0,0 +1,21 @@ +Author: Ying-Chun Liu (PaulLiu) <grandpaul@gmail.com> +Description: Ignore non-printable characters on text input +Bug-Debian: http://bugs.debian.org/535217 +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/262648 +Bug: https://savannah.gnu.org/bugs/?26923 +Forwarded: https://savannah.gnu.org/patch/?7051 + +Index: b/src/text.c +=================================================================== +--- a/src/text.c 2009-12-19 17:12:11.000000000 -0200 ++++ b/src/text.c 2009-12-19 17:12:11.000000000 -0200 +@@ -238,7 +238,9 @@ + } + else if (keyevent->string) + { ++ if (isprint(keyevent->string[0])) { + g_string_append(text->textbuf, keyevent->string); ++ } + } + else if ((keyevent->keyval >= GDK_space) && (keyevent->keyval < GDK_Shift_L)) + { diff --git a/graphics/gpaint/patches/23_add_accelerator_keys.patch b/graphics/gpaint/patches/23_add_accelerator_keys.patch new file mode 100644 index 000000000000..f53813444c5f --- /dev/null +++ b/graphics/gpaint/patches/23_add_accelerator_keys.patch @@ -0,0 +1,92 @@ +Author: Matt Wheeler <m@funkyhat.org> +Description: Add accelerator keys to common functions + Add accelerator keys for common operations in gpaint +Bug-Debian: http://bugs.debian.org/550305 +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/444750 +Bug: https://savannah.gnu.org/bugs/?27618 +Forwarded: https://savannah.gnu.org/patch/?7053 + +Index: b/gpaint.glade +=================================================================== +--- a/gpaint.glade 2009-12-19 17:12:11.000000000 -0200 ++++ b/gpaint.glade 2009-12-19 17:12:11.000000000 -0200 +@@ -341,6 +341,7 @@ + <property name="label" translatable="yes">_New</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_new_file_menu_activate"/> ++ <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image25"> +@@ -362,6 +363,7 @@ + <property name="label" translatable="yes">_Open</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_open_menu_activate"/> ++ <accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image26"> +@@ -383,6 +385,7 @@ + <property name="label" translatable="yes">_Save</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_save_menu_activate"/> ++ <accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image27"> +@@ -453,6 +456,7 @@ + <property name="label" translatable="yes">_Print</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_print_menu_activate"/> ++ <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image30"> +@@ -480,6 +484,7 @@ + <property name="label" translatable="yes">_Close</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_close_window_activate"/> ++ <accelerator key="W" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image31"> +@@ -501,6 +506,7 @@ + <property name="label" translatable="yes">_Quit</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_quit_menu_activate"/> ++ <accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image32"> +@@ -535,6 +541,7 @@ + <property name="label" translatable="yes">Cu_t</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_cut_menu_activate"/> ++ <accelerator key="X" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image33"> +@@ -556,6 +563,7 @@ + <property name="label" translatable="yes">_Copy</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_copy_menu_activate"/> ++ <accelerator key="C" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image34"> +@@ -577,6 +585,7 @@ + <property name="label" translatable="yes">_Paste</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_paste_menu_activate"/> ++ <accelerator key="V" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image35"> +@@ -625,6 +634,7 @@ + <property name="label" translatable="yes">_Select All</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_select_all_activate"/> ++ <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/> + </widget> + </child> + </widget> diff --git a/graphics/gpaint/patches/24_fix_crash_on_failed_write.patch b/graphics/gpaint/patches/24_fix_crash_on_failed_write.patch new file mode 100644 index 000000000000..92be4e8020d4 --- /dev/null +++ b/graphics/gpaint/patches/24_fix_crash_on_failed_write.patch @@ -0,0 +1,105 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Fix crash when saving in unsupported format + Check if the format chosen by the user is supported before trying to save. +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/386234 +Bug: https://savannah.gnu.org/bugs/?25334 +Forwarded: https://savannah.gnu.org/patch/?7052 + +Index: b/src/drawing.c +=================================================================== +--- a/src/drawing.c 2009-12-19 17:12:11.000000000 -0200 ++++ b/src/drawing.c 2009-12-19 17:12:12.000000000 -0200 +@@ -262,7 +262,7 @@ + (error && error->message) ? error->message : ""); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(GTK_WIDGET(dialog)); +- g_free(error); /* allocated by gdk-pixbuf library */ ++ g_error_free(error); /* allocated by gdk-pixbuf library */ + } + return saved; + } +Index: b/src/image.c +=================================================================== +--- a/src/image.c 2009-12-19 17:12:11.000000000 -0200 ++++ b/src/image.c 2009-12-19 17:12:12.000000000 -0200 +@@ -32,6 +32,7 @@ + #include <gdk/gdkx.h> /* for gdk_root_parent */ + #include <gdk-pixbuf/gdk-pixbuf.h> + ++#define _(String) gettext (String) + + static int cmp_int(const void *a, const void *b); + static void fill_polygon( +@@ -191,13 +192,48 @@ + return image; + } + ++ ++gboolean ++is_writable (GSList *formats, gchar *type) ++{ ++ gboolean writable = FALSE; ++ ++ while (!writable && formats != NULL) ++ { ++ gchar** extensions = gdk_pixbuf_format_get_extensions((GdkPixbufFormat *)(formats->data)); ++ gchar** e = NULL; ++ for (e = extensions; *e; ++e) ++ { ++ if (!strcmp(*e, type)) ++ { ++ writable = TRUE; ++ break; ++ } ++ } ++ g_strfreev (extensions); ++ formats = g_slist_next (formats); ++ } ++ return writable; ++} ++ ++void add_if_writable (GdkPixbufFormat *data, GSList **list) ++{ ++ if (gdk_pixbuf_format_is_writable (data)) ++ *list = g_slist_prepend (*list, data); ++} ++ + int + image_write(gpaint_image* image, const gchar* filename, GError **perror) + { + gboolean saved = FALSE; + gchar *ext = NULL; + gchar *type = NULL; +- ++ ++ GSList *formats = gdk_pixbuf_get_formats (); ++ GSList *writable_formats = NULL; ++ g_slist_foreach (formats, add_if_writable, &writable_formats); ++ g_slist_free (formats); ++ + ext = g_strrstr(filename, "."); + if (!ext) + { +@@ -214,13 +250,20 @@ + { + type = g_ascii_strdown(ext+1,-1); + debug1("type=[%s]",type); +- saved = gdk_pixbuf_save(image->pixbuf, filename, type, perror, NULL); ++ if (is_writable (writable_formats, type)) ++ { ++ saved = gdk_pixbuf_save(image->pixbuf, filename, type, perror, NULL); ++ } else { ++ saved = FALSE; ++ *perror = g_error_new (GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_BAD_OPTION, _("Saving in the '%s' format is not supported by gdk_pixbuf"), type); ++ } + g_free(type); + } + if (!saved && *perror) + { + g_warning("Could not save image %s: %s\n", filename, (*perror)->message); +- } ++ } ++ g_slist_free (writable_formats); + return saved; + } + diff --git a/graphics/gpaint/patches/25_fix_color_selection.patch b/graphics/gpaint/patches/25_fix_color_selection.patch new file mode 100644 index 000000000000..7af4eb2ed11f --- /dev/null +++ b/graphics/gpaint/patches/25_fix_color_selection.patch @@ -0,0 +1,79 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Fix foreground/background color selection + Fixes the foreground/background color selection by checking the GtkColorButton + color when the user chooses the color. +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/344237 +Forwarded: https://savannah.gnu.org/patch/index.php?7028 + +diff --git a/src/callbacks.h b/src/callbacks.h +index 985dddf..5485329 100644 +--- a/src/callbacks.h ++++ b/src/callbacks.h +@@ -359,18 +359,10 @@ on_fontpicker_font_set (GtkFontButton *gnomefontpicker, + + void + on_foreground_color_picker_color_set (GtkColorButton *gnomecolorpicker, +- guint arg1, +- guint arg2, +- guint arg3, +- guint arg4, + gpointer user_data); + + void + on_background_color_picker_color_set (GtkColorButton *gnomecolorpicker, +- guint arg1, +- guint arg2, +- guint arg3, +- guint arg4, + gpointer user_data); + + void +diff --git a/src/color_palette.c b/src/color_palette.c +index 9502acc..8c259e7 100644 +--- a/src/color_palette.c ++++ b/src/color_palette.c +@@ -338,7 +338,7 @@ change_color(gpaint_color_swatch *swatch, gpaint_color_mode mode) + g_assert(swatch); + canvas = canvas_lookup(swatch->widget); + gdk_gc_get_values(swatch->gc, &gcvalues); +- ++ + if (mode==FOREGROUND) + { + change_foreground_color(canvas, &(gcvalues.foreground)); +@@ -362,15 +362,12 @@ change_color(gpaint_color_swatch *swatch, gpaint_color_mode mode) + */ + void + on_foreground_color_picker_color_set (GtkColorButton *gnomecolorpicker, +- guint arg1, +- guint arg2, +- guint arg3, +- guint arg4, + gpointer user_data) + { +- GdkColor color = {0, arg1, arg2, arg3}; ++ GdkColor color; + gpaint_canvas *canvas = canvas_lookup(GTK_WIDGET(gnomecolorpicker)); + ++ gtk_color_button_get_color(gnomecolorpicker, &color); + gdk_color_alloc(gdk_colormap_get_system(), &color); + change_foreground_color(canvas, &color); + } +@@ -380,15 +377,12 @@ on_foreground_color_picker_color_set (GtkColorButton *gnomecolorpicker, + */ + void + on_background_color_picker_color_set (GtkColorButton *gnomecolorpicker, +- guint arg1, +- guint arg2, +- guint arg3, +- guint arg4, + gpointer user_data) + { +- GdkColor color = {0, arg1, arg2, arg3}; ++ GdkColor color; + gpaint_canvas *canvas = canvas_lookup(GTK_WIDGET(gnomecolorpicker)); + ++ gtk_color_button_get_color(gnomecolorpicker, &color); + gdk_color_alloc(gdk_colormap_get_system(), &color); + change_background_color(canvas, &color); + } diff --git a/graphics/gpaint/patches/26_fix_toolbar.patch b/graphics/gpaint/patches/26_fix_toolbar.patch new file mode 100644 index 000000000000..c6fdc63e3398 --- /dev/null +++ b/graphics/gpaint/patches/26_fix_toolbar.patch @@ -0,0 +1,21 @@ +Author: Goedson Teixeira Paixao <goedson@debian.org> +Description: Fix toolbar behaviour + Do not set a fixed toolbar style so that gpaint follows the style set in + the user preferences +Bug-Debian: http://bugs.debian.org/497488 +Bug-Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/gpaint/+bug/127296 +Bug: https://savannah.gnu.org/bugs/?21260 +Forwarded: https://savannah.gnu.org/patch/index.php?7044 + +Index: pkg-gpaint/gpaint.glade +=================================================================== +--- pkg-gpaint.orig/gpaint.glade 2009-12-22 20:56:13.000000000 -0200 ++++ pkg-gpaint/gpaint.glade 2009-12-22 20:56:33.000000000 -0200 +@@ -1004,7 +1004,6 @@ + <property name="height_request">55</property> + <property name="visible">True</property> + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property> +- <property name="toolbar_style">GTK_TOOLBAR_BOTH</property> + <property name="tooltips">True</property> + <property name="show_arrow">True</property> + diff --git a/graphics/gpaint/slack-desc b/graphics/gpaint/slack-desc new file mode 100644 index 000000000000..473a8e82f8f0 --- /dev/null +++ b/graphics/gpaint/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +gpaint: gpaint (GNU Paint: a small-scale GTK2 painting program) +gpaint: +gpaint: This is gpaint (GNU Paint), a small-scale GTK2 painting program, +gpaint: on xpaint, along the lines of "Paintbrush". +gpaint: +gpaint: +gpaint: +gpaint: +gpaint: +gpaint: +gpaint: |