File ggreeter-bnc327414.patch of Package ggreeter
diff --git a/src/Greeter.cs b/src/Greeter.cs
index 0492a13..81ac8d1 100644
--- a/src/Greeter.cs
+++ b/src/Greeter.cs
@@ -21,8 +21,10 @@ namespace Greeter {
public class Presenter : Window {
private static GConf.Client client;
private HTML html;
+ private ScrolledWindow scroll;
private const string FirstRun = "/apps/ggreeter/firstrun/10.3";
-
+ private static Gdk.Rectangle MaxGeom = new Gdk.Rectangle (0, 0, 800, 600);
+ private int zoom_steps = 6;
public static void Main (string [] args)
{
@@ -51,6 +53,25 @@ namespace Greeter {
}
}
+ protected override void OnRealized ()
+ {
+ base.OnRealized ();
+
+ int monitor = GdkWindow.Screen.GetMonitorAtWindow (GdkWindow);
+ Gdk.Rectangle geom = GdkWindow.Screen.GetMonitorGeometry (monitor);
+
+ if (geom.Width < MaxGeom.Width || geom.Height < MaxGeom.Height)
+ SetSizeRequest (geom.Width - 50, geom.Height - 50);
+ }
+
+ protected override bool OnExposeEvent (Gdk.EventExpose args)
+ {
+ if (scroll.HScrollbar.Visible || scroll.VScrollbar.Visible && zoom_steps-- > 0)
+ html.ZoomOut ();
+
+ return base.OnExposeEvent (args);
+ }
+
public Presenter () : base ("")
{
Decorated = false;
@@ -62,8 +83,11 @@ namespace Greeter {
html = new Gtk.HTML ();
html.LinkClicked += HandleLinkClicked;
html.UrlRequested += HandleUrlRequested;
- html.SetUsize (800,600);
+
+ SetSizeRequest (MaxGeom.Width, MaxGeom.Height);
+
html.ZoomIn ();
+
Gtk.HTMLStream hstream = html.Begin (null, "text/html; charset=utf-8", Gtk.HTMLBeginFlags.Scroll);
using (Stream header = Open ("greet_header.html"))
@@ -78,7 +102,9 @@ namespace Greeter {
hstream.Close (Gtk.HTMLStreamStatus.Ok);
- this.Add (html);
+ scroll = new ScrolledWindow ();
+ scroll.Add (html);
+ this.Add (scroll);
ShowAll ();
}