summaryrefslogtreecommitdiff
path: root/gtk/a11y
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2012-10-22 19:42:41 -0400
committerMatthias Clasen <mclasen@redhat.com>2012-10-22 19:42:41 -0400
commitbec6b260b4139d955367fa4a869c7a2cd69bf6e5 (patch)
tree3bf1e9ee561d16eed8bc4b5732729bf5100fc461 /gtk/a11y
parentc51157d437b6d35022910b8d0bf0c4ac7199bf6c (diff)
downloadgtk+-bec6b260b4139d955367fa4a869c7a2cd69bf6e5.tar.gz
Be robust against unrealized windows in GtkWindowAccessible
Based on a patch by Albert Astals Cid, https://bugzilla.gnome.org/show_bug.cgi?id=686152
Diffstat (limited to 'gtk/a11y')
-rw-r--r--gtk/a11y/gtkwindowaccessible.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/gtk/a11y/gtkwindowaccessible.c b/gtk/a11y/gtkwindowaccessible.c
index 4b88fb54d9..fbc854a5f1 100644
--- a/gtk/a11y/gtkwindowaccessible.c
+++ b/gtk/a11y/gtkwindowaccessible.c
@@ -262,7 +262,7 @@ gtk_window_accessible_ref_state_set (AtkObject *accessible)
atk_state_set_add_state (state_set, ATK_STATE_ACTIVE);
gdk_window = gtk_widget_get_window (widget);
- if (window)
+ if (gdk_window)
{
state = gdk_window_get_state (gdk_window);
if (state & GDK_WINDOW_STATE_ICONIFIED)
@@ -307,6 +307,7 @@ gtk_window_accessible_get_extents (AtkComponent *component,
AtkCoordType coord_type)
{
GtkWidget *widget;
+ GdkWindow *window;
GdkRectangle rect;
gint x_toplevel, y_toplevel;
@@ -323,7 +324,11 @@ gtk_window_accessible_get_extents (AtkComponent *component,
return;
}
- gdk_window_get_frame_extents (gtk_widget_get_window (widget), &rect);
+ window = gtk_widget_get_window (widget);
+ if (window == NULL)
+ return;
+
+ gdk_window_get_frame_extents (window, &rect);
*width = rect.width;
*height = rect.height;
@@ -338,8 +343,7 @@ gtk_window_accessible_get_extents (AtkComponent *component,
*y = rect.y;
if (coord_type == ATK_XY_WINDOW)
{
- gdk_window_get_origin (gtk_widget_get_window (widget),
- &x_toplevel, &y_toplevel);
+ gdk_window_get_origin (window, &x_toplevel, &y_toplevel);
*x -= x_toplevel;
*y -= y_toplevel;
}
@@ -351,6 +355,7 @@ gtk_window_accessible_get_size (AtkComponent *component,
gint *height)
{
GtkWidget *widget;
+ GdkWindow *window;
GdkRectangle rect;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
@@ -366,7 +371,11 @@ gtk_window_accessible_get_size (AtkComponent *component,
return;
}
- gdk_window_get_frame_extents (gtk_widget_get_window (widget), &rect);
+ window = gtk_widget_get_window (widget);
+ if (window == NULL)
+ return;
+
+ gdk_window_get_frame_extents (window, &rect);
*width = rect.width;
*height = rect.height;