Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
c4328746
Commit
c4328746
authored
Jul 21, 2012
by
Jan Djärv
Browse files
* nsterm.m (accessibilityAttributeValue): New function..
Fixes: debbugs:11134
parent
6e5d1c12
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
1 deletion
+60
-1
src/ChangeLog
src/ChangeLog
+4
-0
src/nsterm.m
src/nsterm.m
+56
-1
No files found.
src/ChangeLog
View file @
c4328746
2012-07-21 Jan Djärv <jan.h.d@swipnet.se>
* nsterm.m (accessibilityAttributeValue): New function. (Bug#11134).
2012-07-21 Chong Yidong <cyd@gnu.org>
* window.c (decode_any_window): Signal an error if the window is
...
...
src/nsterm.m
View file @
c4328746
...
...
@@ -55,7 +55,7 @@ Updated by Christian Limpach (chris@nice.ch)
#include "window.h"
#include "keyboard.h"
#include "buffer.h"
#include "font.h"
/* call tracing */
...
...
@@ -6038,6 +6038,61 @@ - (void) setRows: (int) r andColumns: (int) c
@implementation EmacsWindow
- (id)accessibilityAttributeValue:(NSString *)attribute
{
Lisp_Object str = Qnil;
struct frame *f = SELECTED_FRAME ();
struct buffer *curbuf = XBUFFER (XWINDOW (f->selected_window)->buffer);
if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
return NSAccessibilityTextFieldRole;
if ([attribute isEqualToString:NSAccessibilitySelectedTextAttribute]
&& curbuf && ! NILP (BVAR (curbuf, mark_active)))
{
str = ns_get_local_selection (QPRIMARY, QUTF8_STRING);
}
else if (curbuf && [attribute isEqualToString:NSAccessibilityValueAttribute])
{
if (! NILP (BVAR (curbuf, mark_active)))
str = ns_get_local_selection (QPRIMARY, QUTF8_STRING);
if (NILP (str))
{
ptrdiff_t start_byte = BUF_BEGV_BYTE (curbuf);
ptrdiff_t byte_range = BUF_ZV_BYTE (curbuf) - start_byte;
ptrdiff_t range = BUF_ZV (curbuf) - BUF_BEGV (curbuf);
if (! NILP (BVAR (curbuf, enable_multibyte_characters)))
str = make_uninit_multibyte_string (range, byte_range);
else
str = make_uninit_string (range);
/* To check: This returns emacs-utf-8, which is a superset of utf-8.
Is this a problem? */
memcpy (SDATA (str), BYTE_POS_ADDR (start_byte), byte_range);
}
}
if (! NILP (str))
{
if (CONSP (str) && SYMBOLP (XCAR (str)))
{
str = XCDR (str);
if (CONSP (str) && NILP (XCDR (str)))
str = XCAR (str);
}
if (STRINGP (str))
{
const char *utfStr = SSDATA (str);
NSString *nsStr = [NSString stringWithUTF8String: utfStr];
return nsStr;
}
}
return [super accessibilityAttributeValue:attribute];
}
/* If we have multiple monitors, one above the other, we don't want to
restrict the height to just one monitor. So we override this. */
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment