[Webkit-unassigned] [Bug 25415] [GTK][ATK] Please implement support for get_text_at_offset
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jun 10 04:36:47 PDT 2009
https://bugs.webkit.org/show_bug.cgi?id=25415
jmalonzo at gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #31051|review? |review+
Flag| |
------- Comment #29 from jmalonzo at gmail.com 2009-06-10 04:36 PDT -------
(From update of attachment 31051)
> From f00e7bd148421009d2178db814c4ed4cb20c1074 Mon Sep 17 00:00:00 2001
> From: Xan Lopez <xlopez at igalia.com>
> Date: Mon, 8 Jun 2009 18:20:51 +0300
> Subject: [PATCH] 2009-06-08 Xan Lopez <xlopez at igalia.com>
>
> Reviewed by NOBODY (OOPS!).
>
> https://bugs.webkit.org/show_bug.cgi?id=25415
> [GTK][ATK] Please implement support for get_text_at_offset
>
> Pass a PangoLayout to the GailTextUtil function calls.
>
> It's needed for LINE boundary calls to work correctly.
>
> * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
> (updateLayout):
> (getPangoLayoutForAtk):
> (webkit_accessible_text_get_text_after_offset):
> (webkit_accessible_text_get_text_at_offset):
> ---
> WebCore/ChangeLog | 17 ++++++++
> .../gtk/AccessibilityObjectWrapperAtk.cpp | 41 ++++++++++++++++++-
> 2 files changed, 55 insertions(+), 3 deletions(-)
>
> diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
> index 0334758..694f595 100644
> --- a/WebCore/ChangeLog
> +++ b/WebCore/ChangeLog
> @@ -5,6 +5,23 @@
> https://bugs.webkit.org/show_bug.cgi?id=25415
> [GTK][ATK] Please implement support for get_text_at_offset
>
> + Pass a PangoLayout to the GailTextUtil function calls.
> +
> + It's needed for LINE boundary calls to work correctly.
> +
> + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
> + (updateLayout):
> + (getPangoLayoutForAtk):
> + (webkit_accessible_text_get_text_after_offset):
> + (webkit_accessible_text_get_text_at_offset):
> +
> +2009-06-08 Xan Lopez <xlopez at igalia.com>
> +
> + Reviewed by NOBODY (OOPS!).
> +
> + https://bugs.webkit.org/show_bug.cgi?id=25415
> + [GTK][ATK] Please implement support for get_text_at_offset
> +
> Use GailUtilText instead of my crappy partial reimplementation of
> it. This should add support for LINE boundaries too, although it's
> mostly untested for now.
> diff --git a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
> index e70aaa0..bddac93 100644
> --- a/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
> +++ b/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp
> @@ -41,6 +41,7 @@
> #include "Editor.h"
> #include "Frame.h"
> #include "FrameView.h"
> +#include "HostWindow.h"
> #include "HTMLNames.h"
> #include "IntRect.h"
> #include "NotImplemented.h"
> @@ -503,19 +504,53 @@ static GailTextUtil* getGailTextUtilForAtk(AtkText* textObject)
> return gailTextUtil;
> }
>
> +// We can use the same callback for both 'style-set' and
> +// 'direction-changed', since we don't care about neither of their
> +// second parameters.
> +static void updateLayout(GtkWidget* widget, gpointer dummy, gpointer userData)
> +{
> + gpointer data = g_object_get_data(G_OBJECT(userData), "webkit-accessible-pango-layout");
> + if (!data)
> + return;
> +
> + pango_layout_context_changed(static_cast<PangoLayout*>(data));
> +}
> +
> +static PangoLayout* getPangoLayoutForAtk(AtkText* textObject)
> +{
> + gpointer data = g_object_get_data(G_OBJECT(textObject), "webkit-accessible-pango-layout");
> + if (data)
> + return static_cast<PangoLayout*>(data);
> +
> + String text;
> + AccessibilityObject* coreObject = core(textObject);
> +
> + if (coreObject->isTextControl())
> + text = coreObject->text();
> + else
> + text = coreObject->textUnderElement();
> +
> + PlatformWidget webView = coreObject->document()->view()->hostWindow()->platformWindow();
Might be good to null-check hostWindow() and maybe platformWindow() too.
Looks fine. r=me.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list