summaryrefslogtreecommitdiff
path: root/gtk/a11y/gtklabelaccessible.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2011-06-23 17:54:07 -0400
committerMatthias Clasen <mclasen@redhat.com>2011-07-05 16:08:06 -0400
commit441bf26a2edc488d3727aa4f2f37809c916e0661 (patch)
tree3a74ac7adea92bea4c4ee0741d6ee233f358febb /gtk/a11y/gtklabelaccessible.c
parent91960a2132a90cbf7cb29abeb04fedad741566e4 (diff)
downloadgtk+-441bf26a2edc488d3727aa4f2f37809c916e0661.tar.gz
GtkLabelAccessible: remove broken workarounds
This removes a horrible workaround for bug 126797. To prevent picking up accidental markup in label texts, the label accessible is listening for window creation and mapping and defers initializing its text until then.
Diffstat (limited to 'gtk/a11y/gtklabelaccessible.c')
-rw-r--r--gtk/a11y/gtklabelaccessible.c65
1 files changed, 5 insertions, 60 deletions
diff --git a/gtk/a11y/gtklabelaccessible.c b/gtk/a11y/gtklabelaccessible.c
index e3ccfd15ad..7c4defeeb2 100644
--- a/gtk/a11y/gtklabelaccessible.c
+++ b/gtk/a11y/gtklabelaccessible.c
@@ -23,7 +23,6 @@
#include <gtk/gtk.h>
#include "gtklabelaccessible.h"
-#include "gailwindow.h"
#include <libgail-util/gailmisc.h>
static void gtk_label_accessible_class_init (GtkLabelAccessibleClass *klass);
@@ -32,8 +31,6 @@ static void gtk_label_accessible_real_initialize (AtkObject *obj,
gpointer data);
static void gtk_label_accessible_real_notify_gtk (GObject *obj,
GParamSpec *pspec);
-static void gtk_label_accessible_map_gtk (GtkWidget *widget,
- gpointer data);
static void gtk_label_accessible_init_text_util (GtkLabelAccessible *gail_label,
GtkWidget *widget);
static void gtk_label_accessible_finalize (GObject *object);
@@ -142,8 +139,6 @@ gtk_label_accessible_real_initialize (AtkObject *obj,
accessible = GTK_LABEL_ACCESSIBLE (obj);
- accessible->window_create_handler = 0;
- accessible->has_top_level = FALSE;
accessible->cursor_position = 0;
accessible->selection_bound = 0;
accessible->textutil = NULL;
@@ -151,12 +146,7 @@ gtk_label_accessible_real_initialize (AtkObject *obj,
widget = GTK_WIDGET (data);
- if (gtk_widget_get_mapped (widget))
- gtk_label_accessible_init_text_util (accessible, widget);
- else
- g_signal_connect (widget, "map",
- G_CALLBACK (gtk_label_accessible_map_gtk),
- accessible);
+ gtk_label_accessible_init_text_util (accessible, widget);
/*
* Check whether ancestor of GtkLabel is a GtkButton and if so
@@ -179,16 +169,6 @@ gtk_label_accessible_real_initialize (AtkObject *obj,
}
static void
-gtk_label_accessible_map_gtk (GtkWidget *widget,
- gpointer data)
-{
- GtkLabelAccessible *accessible;
-
- accessible = GTK_LABEL_ACCESSIBLE (data);
- gtk_label_accessible_init_text_util (accessible, widget);
-}
-
-static void
gtk_label_accessible_init_text_util (GtkLabelAccessible *accessible,
GtkWidget *widget)
{
@@ -271,15 +251,6 @@ notify_name_change (AtkObject *atk_obj)
}
static void
-window_created (GObject *obj,
- gpointer data)
-{
- g_return_if_fail (GTK_LABEL_ACCESSIBLE (data));
-
- notify_name_change (ATK_OBJECT (data));
-}
-
-static void
gtk_label_accessible_real_notify_gtk (GObject *obj,
GParamSpec *pspec)
{
@@ -288,40 +259,14 @@ gtk_label_accessible_real_notify_gtk (GObject *obj,
GtkLabel *label;
GtkLabelAccessible *accessible;
GObject *gail_obj;
- AtkObject *top_level;
- AtkObject *temp_obj;
accessible = GTK_LABEL_ACCESSIBLE (atk_obj);
- if (strcmp (pspec->name, "label") == 0)
+ if (strcmp (pspec->name, "label") == 0 ||
+ strcmp (pspec->name, "use-underline") == 0 ||
+ strcmp (pspec->name, "use-markup") == 0)
{
- /*
- * We may get a label change for a label which is not attached to an
- * application. We wait until the toplevel window is created before
- * emitting the notification.
- *
- * This happens when [Ctrl+]Alt+Tab is pressed in metacity
- */
- if (!accessible->has_top_level)
- {
- temp_obj = atk_obj;
- top_level = NULL;
- while (temp_obj)
- {
- top_level = temp_obj;
- temp_obj = atk_object_get_parent (top_level);
- }
- if (atk_object_get_role (top_level) != ATK_ROLE_APPLICATION)
- {
- if (accessible->window_create_handler == 0 &&
- GAIL_IS_WINDOW (top_level))
- accessible->window_create_handler = g_signal_connect_after (top_level, "create", G_CALLBACK (window_created), atk_obj);
- }
- else
- accessible->has_top_level = TRUE;
- }
- if (accessible->has_top_level)
- notify_name_change (atk_obj);
+ notify_name_change (atk_obj);
}
else if (strcmp (pspec->name, "cursor-position") == 0)
{