[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#745359: marked as done (cdebconf-gtk-udeb: fails to extend banner when needed)



Your message dated Mon, 28 Apr 2014 11:33:51 +0000
with message-id <E1Wejol-0004Ky-SH@franck.debian.org>
and subject line Bug#745359: fixed in cdebconf 0.190
has caused the Debian Bug report #745359,
regarding cdebconf-gtk-udeb: fails to extend banner when needed
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
745359: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745359
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: cdebconf-gtk-udeb
Version: 0.189
Severity: important
Tags: patch pending

rootskel-gtk ships a 800px-wide banner, and that ought to be sufficient
since the default mode is 800x600. Some systems are using a wider
display though (seen with kfreebsd-amd64, or even with amd64 on some
EFI-based systems), which leads to a bad display (centered banner, with
a blank margin on both sides).

One could think of various options, including:
 - ship banner in different sizes;
 - replicate a 1px-wide strip on the left and on the right to fill in
   the blanks;
 - stretch/scale the banner.

I've decided to implement the last option. Before/after screenshots are
attached. Easy to reproduce, replacing vga=788 with vga=791 on the
kernel command line, at the syslinux prompt.

Of course, scaling isn't looking too nice, but I feel it's better than
the current situation. The patch I'm planning to commit is also
attached.

I note this also fixes the label's being unreadable (that happens in
rescue mode for example).

Mraw,
KiBi.
--- a/src/modules/frontend/gtk/fe_data.h
+++ b/src/modules/frontend/gtk/fe_data.h
@@ -66,6 +66,8 @@ struct frontend_data
      */
     int logo_width;
     int logo_height;
+    bool logo_adjusted;
+    GtkWidget * logo_widget;
 
     /** Internal data of the handler of progress commands.
      *
--- a/src/modules/frontend/gtk/ui.c
+++ b/src/modules/frontend/gtk/ui.c
@@ -103,6 +103,30 @@ static gboolean handle_exposed_banner(GtkWidget * widget,
     gchar * message;
     char * text;
 
+    /* There's no way to get the window size before it's realized, so
+     * defer (possibly) adjusting the logo size until the first expose
+     * event.
+     */
+    if (TRUE != fe_data->logo_adjusted) {
+        fprintf(stderr, "Checking the need for logo adjustment.\n");
+
+        /* If logo and window widths differ, scale. */
+        GtkAllocation allocation;
+        gtk_widget_get_allocation(fe_data->window, &allocation);
+        if (fe_data->logo_width != allocation.width) {
+            fprintf(stderr, "Logo needs scaling: width from %d to %d pixels.\n", fe_data->logo_width, allocation.width);
+            GdkPixbuf * scaled_pixbuf = gdk_pixbuf_scale_simple(gtk_image_get_pixbuf(GTK_IMAGE(fe_data->logo_widget)),
+                                                                allocation.width,
+                                                                fe_data->logo_height,
+                                                                GDK_INTERP_BILINEAR);
+            gtk_image_set_from_pixbuf(GTK_IMAGE(fe_data->logo_widget), scaled_pixbuf);
+            fe_data->logo_width = allocation.width;
+        } else {
+            fprintf(stderr, "Logo needs no scaling: width stays at %d pixels.\n", allocation.width);
+        }
+        fe_data->logo_adjusted = TRUE;
+    }
+
     if (NULL != fe->info) {
         text = q_get_description(fe, fe->info);
         message = g_strdup_printf(
@@ -189,6 +213,8 @@ static void create_banner(struct frontend * fe, GtkWidget * container)
     pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(logo));
     fe_data->logo_width = gdk_pixbuf_get_width(pixbuf);
     fe_data->logo_height = gdk_pixbuf_get_height(pixbuf);
+    fe_data->logo_adjusted = FALSE;
+    fe_data->logo_widget = logo;
 
     g_signal_connect_after(G_OBJECT(banner), "expose_event",
                            G_CALLBACK(handle_exposed_banner), fe);

Attachment: before-cropped.png
Description: PNG image

Attachment: after-cropped.png
Description: PNG image


--- End Message ---
--- Begin Message ---
Source: cdebconf
Source-Version: 0.190

We believe that the bug you reported is fixed in the latest version of
cdebconf, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 745359@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Cyril Brulebois <kibi@debian.org> (supplier of updated cdebconf package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Mon, 28 Apr 2014 13:10:14 +0200
Source: cdebconf
Binary: cdebconf cdebconf-gtk libdebconfclient0 libdebconfclient0-dev cdebconf-udeb cdebconf-priority libdebconfclient0-udeb cdebconf-text-udeb cdebconf-slang-udeb cdebconf-newt-udeb cdebconf-gtk-udeb
Architecture: source all amd64
Version: 0.190
Distribution: unstable
Urgency: medium
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Cyril Brulebois <kibi@debian.org>
Description: 
 cdebconf   - Debian Configuration Management System (C-implementation)
 cdebconf-gtk - Gtk+ frontend for Debian Configuration Management System
 cdebconf-gtk-udeb - Gtk+ frontend for Debian Configuration Management System (udeb)
 cdebconf-newt-udeb - Newt frontend for Debian Configuration Management System (udeb)
 cdebconf-priority - Change debconf priority (udeb)
 cdebconf-slang-udeb - S-Lang frontend for Debian Configuration Management System (udeb)
 cdebconf-text-udeb - Plain text frontend for Debian Configuration Management System (udeb)
 cdebconf-udeb - Debian Configuration Management System (C-implementation) (udeb)
 libdebconfclient0 - Debian Configuration Management System (C-implementation library)
 libdebconfclient0-dev - Development files for cdebconf
 libdebconfclient0-udeb - Debian Configuration Management System (C-implementation) (udeb)
Closes: 745359
Changes: 
 cdebconf (0.190) unstable; urgency=medium
 .
   * Resize banner when window width and banner width don't match
     (Closes: #745359).
Checksums-Sha1: 
 cbac468d02fcc8ee332817b02c7d41a7f3ff44a0 2673 cdebconf_0.190.dsc
 53913c41f11c486b29dbcbb23d42fcc2f21894a5 265796 cdebconf_0.190.tar.xz
 34f557e543c2610a3ddcc43b8cb2542867d42793 3344 cdebconf-priority_0.190_all.udeb
 0ce4756b8c4e9a2d4564a16e72e31de3ad7ed3e1 173606 cdebconf_0.190_amd64.deb
 470c2ddf0997e262cf3215a76a2d7d6a03a16bbd 70986 cdebconf-gtk_0.190_amd64.deb
 cb24a59d5fe5170978e22bc085218b7f3e3a660c 46170 libdebconfclient0_0.190_amd64.deb
 f920aefa4f2b15e24d163e4e0b1ea145b0bf874c 50710 libdebconfclient0-dev_0.190_amd64.deb
 be24f6a3f6baa6b9a8144eb7769aa263c511b2f3 82194 cdebconf-udeb_0.190_amd64.udeb
 28ef2936fc1ac6711e579a36fa9e1976aa6a98f2 3158 libdebconfclient0-udeb_0.190_amd64.udeb
 19ed866b177d28ab1033d3ca4efe010a977d335b 24534 cdebconf-text-udeb_0.190_amd64.udeb
 261bf43ac03bb887344f2681156c4d418a21f6ed 20434 cdebconf-newt-udeb_0.190_amd64.udeb
 6d7a12eca58406f0afe298dd8f11951fef67e30b 28738 cdebconf-gtk-udeb_0.190_amd64.udeb
Checksums-Sha256: 
 faecdadbd90effde61767a520f9818dcade38966681b1bc00c67172cc72d3956 2673 cdebconf_0.190.dsc
 ffc40a4f181cc93034e05c98a444b1337ea2fe706f6d30bd582630f741f520ac 265796 cdebconf_0.190.tar.xz
 2c8d5107fcbba5bead6110b82b7b7db80a352a1dc21e895db82d4bc49871c3a2 3344 cdebconf-priority_0.190_all.udeb
 9527766626474914081074d6e6bccb9dea4688d029949ef664d4f5d8bfb0cf51 173606 cdebconf_0.190_amd64.deb
 50a9534ff55dead086202a7033154a2d9db3d0ff120d41adab3eca72314be271 70986 cdebconf-gtk_0.190_amd64.deb
 17b0f4dd690001a86146acb5505e65caba369cf28d18ea9338ad765454a93e94 46170 libdebconfclient0_0.190_amd64.deb
 5f7ff6ef54a9e535fa62413ccc829091e482cef85fad70eb650bad75fd6a9824 50710 libdebconfclient0-dev_0.190_amd64.deb
 ce7c090d4e01c77f80150da348fcca3d7be9202f018a300e28b2019ad605cb3f 82194 cdebconf-udeb_0.190_amd64.udeb
 645d07171111c23ff9b49302e6cce999696daa39d22f6f86e1dfca426468c731 3158 libdebconfclient0-udeb_0.190_amd64.udeb
 be447bce71509114efc2094dccfb1e3cfa8c9146703082884f6f16a51a67b615 24534 cdebconf-text-udeb_0.190_amd64.udeb
 f0b94dc10feb7cda68c629a14384b9063eef761a70b755788eeb8d3f81578030 20434 cdebconf-newt-udeb_0.190_amd64.udeb
 bb577ac9cd365f4ff62a0a3431828e1737780ee787e8e2d583377650675d08a7 28738 cdebconf-gtk-udeb_0.190_amd64.udeb
Files: 
 836cc4b906d712909a64b03d71d6292d 3344 debian-installer standard cdebconf-priority_0.190_all.udeb
 41e867b0ee60be681b07b37b050e78e0 173606 utils extra cdebconf_0.190_amd64.deb
 03e5b9f51c0df045c392ce115ed721e8 70986 admin extra cdebconf-gtk_0.190_amd64.deb
 4951dfe8b0927af457594ad41b849afa 46170 libs optional libdebconfclient0_0.190_amd64.deb
 ae5322e576f6ca70aa3bd3e3c5f2dd5f 50710 libdevel optional libdebconfclient0-dev_0.190_amd64.deb
 e68386f49d8c01ec63399a36ad57987a 82194 debian-installer standard cdebconf-udeb_0.190_amd64.udeb
 0419099b14e21da4dbf736ee95c23db3 3158 debian-installer optional libdebconfclient0-udeb_0.190_amd64.udeb
 3fa71768640d4aa69d7651236a731feb 24534 debian-installer optional cdebconf-text-udeb_0.190_amd64.udeb
 05615a40b6cae07dc098b7e23878e990 20434 debian-installer optional cdebconf-newt-udeb_0.190_amd64.udeb
 45c7eff08afcbe8b87b8922d4ae28ae2 28738 debian-installer optional cdebconf-gtk-udeb_0.190_amd64.udeb
 85b529929760de09b3b37adc207a0468 2673 utils optional cdebconf_0.190.dsc
 533fb1c16d49a7a85a1a439750f55cfc 265796 utils optional cdebconf_0.190.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJTXjpVAAoJEP+RSvDCs1UgjroQAMHCq8oBUh0yTG1simnRAE9n
v8gRKE1UaIaVKyskd3EKFsdQOj46YgaCoVr887FByjU/P6zPB1q4XpLwgvOtQUrY
cT0SU/x1eNNbK/82NNMZ9QW5mPYxVeLY+29ZnO7PxVuOFwIX2hlwf/torCSXZ/j3
/+cjhdUFeEwwhxHrLqVqLlT06EVNYT3g/yz2mSUi/TmrDL942HjAvyjTA1ypVK8y
N0pISBONW56D7+hEnBlwK7m0GppWTTAQLAsZ12RBItTcOV4FvE1665C9P/p4sHK0
mxO0bnbBhrlpZTU1JgGcyNivn4hhwh2A9MbuDi48VbYDrEXZFIC/Y89N5+o9AQNh
yCnSZdGbdOghbnfJ1iHzOp9YHIxPmA6u5oWsEgi2EpHc+DQvxdozjhvPxzGCjrym
rkE3MTMVj3a/20YzTwz2NMCml7qfobuH9qIFD6jXKUgbAzv1dJNOvEhmJsYUIgu6
f6WAsnT1vB4gRRLklIXK1dfY8PJXL2GCxKbkwmNYJidDwoQaBwXNzG8preComt3b
BtBrnETqm+iadhKW4ssSIV81qv84emp10cnKzyrs8OKAkbaDrFlqG7S3qokA4ZP/
85JRlrQMA9J2/I5gsCA9F9Y93lCcGlX+oOkWFEqoaTrkb4QTwTHvHu4UJR2BI9E7
waCugEFyZ11GLOl8zXyf
=3iT+
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: