X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fstable%2Fsrc%2Fgtkmm%2Fdialogsettings.cpp;h=7f38a8347a1f074bc8a3b386008c3bb750c947a5;hb=47fce282611fbba1044921d22ca887f9b53ad91a;hp=1705087addd11b116e6b592a9eb41d522757e8d4;hpb=f6184c2a9c2245aae802c31c8f3300e1b744359c;p=synfig.git diff --git a/synfig-studio/tags/stable/src/gtkmm/dialogsettings.cpp b/synfig-studio/tags/stable/src/gtkmm/dialogsettings.cpp index 1705087..7f38a83 100644 --- a/synfig-studio/tags/stable/src/gtkmm/dialogsettings.cpp +++ b/synfig-studio/tags/stable/src/gtkmm/dialogsettings.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -31,6 +32,9 @@ #include "dialogsettings.h" #include +#include + +#include "general.h" #endif @@ -66,14 +70,14 @@ DialogSettings::get_value(const synfig::String& key, synfig::String& value)const { if(key=="pos") { - if(!window->is_visible())return false; + // if(!window->is_visible())return false; int x,y; window->get_position(x,y); value=strprintf("%d %d",x,y); return true; } if(key=="size") { - if(!window->is_visible())return false; + // if(!window->is_visible())return false; int x,y; window->get_size(x,y); value=strprintf("%d %d",x,y); return true; @@ -114,6 +118,9 @@ DialogSettings::get_value(const synfig::String& key, synfig::String& value)const bool DialogSettings::set_value(const synfig::String& key,const synfig::String& value) { + int screen_w(Gdk::screen_width()); + int screen_h(Gdk::screen_height()); + if(value.empty()) return false; @@ -122,6 +129,10 @@ DialogSettings::set_value(const synfig::String& key,const synfig::String& value) int x,y; if(!strscanf(value,"%d %d",&x, &y)) return false; + + if (x > screen_w) x = screen_w - 150; if (x < 0) x = 0; + if (y > screen_h) y = screen_h - 150; if (y < 0) y = 0; + window->move(x,y); return true; } @@ -130,6 +141,10 @@ DialogSettings::set_value(const synfig::String& key,const synfig::String& value) int x,y; if(!strscanf(value,"%d %d",&x, &y)) return false; + + if (x > screen_w) x = 150; if (x < 0) x = 0; + if (y > screen_h) y = 150; if (y < 0) y = 0; + window->set_default_size(x,y); return true; }