From 7ffc01191ea40d16308c8eafa6962847b4fc6e46 Mon Sep 17 00:00:00 2001 From: Andrey Skvortsov Date: Wed, 13 Oct 2010 20:12:29 -0700 Subject: [PATCH] auto hide scrollbars on the imagearea --- rtgui/imageareapanel.cc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/rtgui/imageareapanel.cc b/rtgui/imageareapanel.cc index e03bd3e5c..8d343889e 100644 --- a/rtgui/imageareapanel.cc +++ b/rtgui/imageareapanel.cc @@ -30,7 +30,7 @@ ImageAreaPanel::ImageAreaPanel () : before(NULL), after(NULL) { Gtk::Frame* frame = Gtk::manage (new Gtk::Frame ()); frame->add (*imageArea); frame->set_shadow_type (Gtk::SHADOW_IN ); - hb1->pack_start (*frame); + hb1->pack_start (*frame, Gtk::PACK_EXPAND_WIDGET); hb1->pack_end (*vscroll, Gtk::PACK_SHRINK, 0); pack_start (*hb1); @@ -39,15 +39,10 @@ ImageAreaPanel::ImageAreaPanel () : before(NULL), after(NULL) { imageArea->show (); hb1->show (); - Gtk::HBox* tmp = Gtk::manage (new Gtk::HBox ()); hb2->pack_start (*hscroll); - Gtk::Requisition vcr = vscroll->size_request (); - tmp->set_size_request (vcr.width, vcr.width); - hb2->pack_end (*tmp, Gtk::PACK_SHRINK, 0); pack_start (*hb2,Gtk::PACK_SHRINK, 0); hscroll->show (); - tmp->show (); hb2->show (); hscroll->set_update_policy (Gtk::UPDATE_CONTINUOUS); @@ -93,6 +88,16 @@ void ImageAreaPanel::configScrollBars () { hscroll->set_value (x); vscroll->set_value (y); + if(iw>=imgw) + hscroll->hide(); + else + hscroll->show(); + + if(ih>=imgh) + vscroll->hide(); + else + vscroll->show(); + if (before && this==after) before->synchronize (); else if (after && this==before)