[vlc-commits] GTK: VLC cone icon scaling if window too small

Cheng Sun git at videolan.org
Thu Jan 5 03:03:07 CET 2012


npapi-vlc | branch: master | Cheng Sun <chengsun9 at gmail.com> | Tue Jan  3 21:37:45 2012 +0000| [19fc77872f8174c9c9769ae29eb74e6bac6b1f87] | committer: Jean-Baptiste Kempf

GTK: VLC cone icon scaling if window too small

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/npapi-vlc.git/?a=commit;h=19fc77872f8174c9c9769ae29eb74e6bac6b1f87
---

 npapi/vlcplugin_gtk.cpp |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/npapi/vlcplugin_gtk.cpp b/npapi/vlcplugin_gtk.cpp
index d9f0238..182fd16 100644
--- a/npapi/vlcplugin_gtk.cpp
+++ b/npapi/vlcplugin_gtk.cpp
@@ -269,6 +269,16 @@ static bool video_expose_handler(GtkWidget *widget, GdkEvent *event, gpointer us
         winheight  = gdk_window_get_height(window),
         iconwidth  = gdk_pixbuf_get_width(cone_icon),
         iconheight = gdk_pixbuf_get_height(cone_icon);
+    double widthratio  = (double) winwidth / iconwidth,
+           heightratio = (double) winheight / iconheight;
+    double sizeratio = widthratio < heightratio ? widthratio : heightratio;
+    if (sizeratio < 1.0) {
+        cone_icon = gdk_pixbuf_scale_simple(cone_icon, iconwidth * sizeratio, iconheight * sizeratio, GDK_INTERP_BILINEAR);
+        if (!cone_icon) return false;
+        iconwidth  = gdk_pixbuf_get_width(cone_icon);
+        iconheight = gdk_pixbuf_get_height(cone_icon);
+    }
+
     cairo_t *cr = gdk_cairo_create(window);
     gdk_cairo_set_source_pixbuf(cr, cone_icon,
             (winwidth-iconwidth)/2.0, (winheight-iconheight)/2.0);



More information about the vlc-commits mailing list