[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