X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fdockmanager.cpp;h=0da07ebf42ac2558da0ee8e9cc90322af9e95392;hb=69d51ca9bea12b87bf5d8d81d0892ae824cb4147;hp=cc13a9680034e91e4c23cafd578823240d73175b;hpb=0cafd094043818c3bb7d829f6a8ca98a95311ab3;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/dockmanager.cpp b/synfig-studio/trunk/src/gtkmm/dockmanager.cpp index cc13a96..0da07eb 100644 --- a/synfig-studio/trunk/src/gtkmm/dockmanager.cpp +++ b/synfig-studio/trunk/src/gtkmm/dockmanager.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 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 @@ -37,6 +38,8 @@ #include #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -132,7 +135,8 @@ public: if(key=="contents_size") { try { - + int width, height; + Gtk::IconSize::lookup(Gtk::IconSize(4),width,height); vector data; String::size_type n=0; String value_(value); @@ -142,11 +146,17 @@ public: if(!strscanf(value_,"%d",&size)) break; size=size*screen_h/SCALE_FACTOR; + + // prevent errors like this, by allowing space for at least the dockable's icon: + // ** CRITICAL **: clearlooks_style_draw_box_gap: assertion `height >= -1' failed + if (size < height + 9) size = height + 9; + data.push_back(size); n=value_.find(" "); if(n==String::npos) break; + n++; } dock_dialog.set_dock_book_sizes(data); } @@ -228,7 +238,7 @@ DockManager::~DockManager() while(!dockable_list_.empty()) { Dockable* dockable(dockable_list_.back()); - synfig::info("DockManager::~DockManager(): Deleting dockable \"%s\"",dockable->get_name().c_str()); + // synfig::info("DockManager::~DockManager(): Deleting dockable \"%s\"",dockable->get_name().c_str()); dockable_list_.pop_back(); delete dockable; } @@ -238,7 +248,7 @@ void DockManager::register_dockable(Dockable& x) { dockable_list_.push_back(&x); - synfig::info("DockManager::register_dockable(): Registered dockable \"%s\"",dockable_list_.back()->get_name().c_str()); + // synfig::info("DockManager::register_dockable(): Registered dockable \"%s\"",dockable_list_.back()->get_name().c_str()); signal_dockable_registered()(&x); }