Fixed an issue that preventing resizing gtk widgets

- use of set_size_request() in gtk forces a minimum size
- implemented proper widget callbacks for negotiating desired size