Chris Vine wrote:
> On Wednesday 25 October 2006 10:21, Toralf Lund wrote:
>   
>> Does Gtkmm/Gdkmm offer a nice and simple way to find out if a widget or
>> window is actually visible to the user, i.e. is mapped *and not obscured
>> by another window*? I mean, .e.g Gdk::Window::is_viewable () and
>> Gdk::Window::is_visible ()/Gtk::Widget::is_visible() will answer only
>> first half of that question, I believe, i.e. they will tell me whether
>> the window/widget is mapped, but not check if it is covered by something
>> else.
>>     
>
> I am not entirely sure if I understand you but Gtk::Widget::is_visible() will 
> tell you whether the widget is obscured.  (Note however that a minimised 
> window still counts as visible so in practice you will need to check for 
> both.)
>   
I thought I proved by testing that is_visible() would merely check 
whether show() had been called - not if the widget or window was 
actually visible to the user, but maybe I got it wrong...

> The best thing is to connect to the 
> Gtk::Widget::signal_visibility_notify_event() signal of the Gtk::Window 
> object concerned.  The GdkEventVisibility argument passed to the slot has an 
> enumerated member variable called 'state' of type GdkVisibilityState which 
> can tell you whether the widget is wholly or partially obscured (it has state 
> values of GDK_VISIBILITY_UNOBSCURED GDK_VISIBILITY_PARTIAL and 
> GDK_VISIBILITY_FULLY_OBSCURED).  The callback will be called whenever the 
> visibility state changes.
>   
Unfortunately, that won't do for the case I have in mind (or I wouldn't 
have asked), as I want to check visibility in the context of using 
Gdk::Window::process_updates().

- Toralf
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to