Re: Find out if a widget or window is actually visible?
- From: Toralf Lund <toralf procaptura com>
- To: Chris Vine <chris cvine freeserve co uk>
- Cc: gtkmm-list gnome org
- Subject: Re: Find out if a widget or window is actually visible?
- Date: Mon, 30 Oct 2006 09:10:52 +0100
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]