summaryrefslogtreecommitdiff
path: root/libgnomekbd/gkbd-util.c
diff options
context:
space:
mode:
authorSergey V. Udaltsov <svu@src.gnome.org>2008-05-10 20:05:37 +0000
committerSergey V. Udaltsov <svu@src.gnome.org>2008-05-10 20:05:37 +0000
commitfa12f94e1cd57f0d2a3c1da970f1fd2d08185018 (patch)
tree811b79e53d8f62e6cdaf166ffab66d6d35ef067b /libgnomekbd/gkbd-util.c
parent03cd2cd40c480d779a113ca954fb2c9ea48a9d3c (diff)
downloadlibgnomekbd-fa12f94e1cd57f0d2a3c1da970f1fd2d08185018.tar.gz
making default size dependent on the screen size, b.g.o#481118
svn path=/trunk/; revision=275
Diffstat (limited to 'libgnomekbd/gkbd-util.c')
-rw-r--r--libgnomekbd/gkbd-util.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/libgnomekbd/gkbd-util.c b/libgnomekbd/gkbd-util.c
index d7779b7..a0033c5 100644
--- a/libgnomekbd/gkbd-util.c
+++ b/libgnomekbd/gkbd-util.c
@@ -112,15 +112,25 @@ gkbd_preview_load_position (void)
g_object_unref (G_OBJECT (conf_client));
- // default values should be just ignored
- if (x == -1 || y == -1 || w == -1 || h == -1)
- return NULL;
-
rv = g_new (GdkRectangle, 1);
- rv->x = x;
- rv->y = y;
- rv->width = w;
- rv->height = h;
+ if (x == -1 || y == -1 || w == -1 || h == -1) {
+ /* default values should be treated as
+ * "0.75 of the screen size" */
+ GdkScreen *scr = gdk_screen_get_default ();
+ gint w = gdk_screen_get_width (scr);
+ gint h = gdk_screen_get_height (scr);
+ rv->x = w >> 3;
+ rv->y = h >> 3;
+ rv->width = w - (w >> 2);
+ rv->height = h - (h >> 2);
+ } else {
+ rv->x = x;
+ rv->y = y;
+ rv->width = w;
+ rv->height = h;
+ }
+ printf ("rect: %d, %d (%dx%d)\n", rv->x, rv->y, rv->width,
+ rv->height);
return rv;
}