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
32d59dc3
Commit
32d59dc3
authored
Jan 06, 2010
by
Jan Djärv
Browse files
Merge from trunk
parents
b7f8e4f5
474217c8
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
23 deletions
+33
-23
src/ChangeLog
src/ChangeLog
+6
-0
src/nsfns.m
src/nsfns.m
+27
-23
No files found.
src/ChangeLog
View file @
32d59dc3
2010-01-06 David Reitter <david.reitter@gmail.com>
* nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS.
(Fns_display_usable_bounds): Rewrite, computing bounds properly
(Bug#3233).
2010-01-06 Jan Djärv <jan.h.d@swipnet.se>
* font.c (font_open_entity): Enable chache and call cached_font_ok
...
...
src/nsfns.m
View file @
32d59dc3
...
...
@@ -206,30 +206,28 @@ Updated by Christian Limpach (chris@nice.ch)
static
NSScreen
*
ns_get_screen
(
Lisp_Object
screen
)
{
struct
terminal
*
terminal
=
get_terminal
(
screen
,
1
);
struct
frame
*
f
;
struct
terminal
*
terminal
;
if
(
EQ
(
Qt
,
screen
))
/* not documented */
return
[
NSScreen
mainScreen
];
terminal
=
get_terminal
(
screen
,
1
);
if
(
terminal
->
type
!=
output_ns
)
// Not sure if this special case for nil is needed. It does seem to be
// important in xfns.c for the make-frame call in frame-initialize,
// so let's keep it here for now.
return
(
NILP
(
screen
)
?
[
NSScreen
mainScreen
]
:
NULL
);
else
{
struct
ns_display_info
*
dpyinfo
=
terminal
->
display_info
.
ns
;
struct
frame
*
f
=
dpyinfo
->
x_focus_frame
;
if
(
!
f
)
f
=
dpyinfo
->
x_highlight_frame
;
if
(
!
f
)
return
NULL
;
if
(
NILP
(
screen
))
f
=
SELECTED_FRAME
();
else
if
(
FRAMEP
(
screen
))
f
=
XFRAME
(
screen
);
else
{
id
window
=
nil
;
Lisp_Object
frame
;
eassert
(
FRAME_NS_P
(
f
));
XSETFRAME
(
frame
,
f
);
window
=
ns_get_window
(
frame
);
return
window
?
[
window
screen
]
:
NULL
;
}
struct
ns_display_info
*
dpyinfo
=
terminal
->
display_info
.
ns
;
f
=
(
dpyinfo
->
x_focus_frame
||
dpyinfo
->
x_highlight_frame
);
}
return
((
f
&&
FRAME_NS_P
(
f
))
?
[[
FRAME_NS_VIEW
(
f
)
window
]
screen
]
:
NULL
);
}
...
...
@@ -2325,15 +2323,21 @@ The return value is a list of integers (LEFT TOP WIDTH HEIGHT), which
Lisp_Object
display
;
{
int
top
;
NSScreen
*
screen
;
NSRect
vScreen
;
check_ns
();
vScreen
=
[
ns_get_screen
(
display
)
visibleFrame
];
top
=
vScreen
.
origin
.
y
==
0
.
0
?
(
int
)
[
ns_get_screen
(
display
)
frame
].
size
.
height
-
vScreen
.
size
.
height
:
0
;
screen
=
ns_get_screen
(
display
);
if
(
!
screen
)
return
Qnil
;
vScreen
=
[
screen
visibleFrame
];
/* NS coordinate system is upside-down.
Transform to screen-specific coordinates. */
return
list4
(
make_number
((
int
)
vScreen
.
origin
.
x
),
make_number
(
top
),
make_number
((
int
)
[
screen
frame
].
size
.
height
-
vScreen
.
size
.
height
-
vScreen
.
origin
.
y
),
make_number
((
int
)
vScreen
.
size
.
width
),
make_number
((
int
)
vScreen
.
size
.
height
));
}
...
...
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