Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
1c8685fb
Commit
1c8685fb
authored
Aug 02, 2008
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: Fix controller playlist toggling to use the contentRect and not the window Frame rect.
parent
bbd3cba0
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
33 deletions
+55
-33
extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
...osx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
+0
-0
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+55
-33
No files found.
extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
View file @
1c8685fb
No preview for this file type
modules/gui/macosx/intf.m
View file @
1c8685fb
...
@@ -455,7 +455,11 @@ static VLCMain *_o_sharedMainInstance = nil;
...
@@ -455,7 +455,11 @@ static VLCMain *_o_sharedMainInstance = nil;
[
o_window
setDelegate
:
self
];
[
o_window
setDelegate
:
self
];
b_restore_size
=
false
;
b_restore_size
=
false
;
if
(
[
o_window
frame
].
size
.
height
<=
200
)
// Set that here as IB seems to be buggy
[
o_window
setContentMinSize
:
NSMakeSize
(
338
.,
30
.)];
if
(
[
o_window
contentRectForFrameRect
:[
o_window
frame
]].
size
.
height
<=
169
.
)
{
{
b_small_window
=
YES
;
b_small_window
=
YES
;
[
o_window
setFrame
:
NSMakeRect
(
[
o_window
frame
].
origin
.
x
,
[
o_window
setFrame
:
NSMakeRect
(
[
o_window
frame
].
origin
.
x
,
...
@@ -466,14 +470,16 @@ static VLCMain *_o_sharedMainInstance = nil;
...
@@ -466,14 +470,16 @@ static VLCMain *_o_sharedMainInstance = nil;
else
else
{
{
b_small_window
=
NO
;
b_small_window
=
NO
;
[
o_playlist_view
setFrame
:
NSMakeRect
(
0
,
0
,
[
o_window
frame
].
size
.
width
,
[
o_window
frame
].
size
.
height
-
95
)];
NSRect
contentRect
=
[
o_window
contentRectForFrameRect
:[
o_window
frame
]];
[
o_playlist_view
setFrame
:
NSMakeRect
(
0
,
0
,
contentRect
.
size
.
width
,
contentRect
.
size
.
height
-
[
o_window
contentMinSize
].
height
)];
[
o_playlist_view
setNeedsDisplay
:
YES
];
[
o_playlist_view
setNeedsDisplay
:
YES
];
[
o_playlist_view
setAutoresizesSubviews
:
YES
];
[
o_playlist_view
setAutoresizesSubviews
:
YES
];
[[
o_window
contentView
]
addSubview
:
o_playlist_view
];
[[
o_window
contentView
]
addSubview
:
o_playlist_view
];
}
}
[
self
updateTogglePlaylistState
];
[
self
updateTogglePlaylistState
];
o_size_with_playlist
=
[
o_window
frame
].
size
;
o_size_with_playlist
=
[
o_window
contentRectForFrameRect
:[
o_window
frame
]
].
size
;
p_playlist
=
pl_Yield
(
p_intf
);
p_playlist
=
pl_Yield
(
p_intf
);
...
@@ -2242,35 +2248,35 @@ end:
...
@@ -2242,35 +2248,35 @@ end:
}
}
}
}
#pragma mark Playlist toggling
-
(
IBAction
)
togglePlaylist
:(
id
)
sender
-
(
IBAction
)
togglePlaylist
:(
id
)
sender
{
{
NSRect
o_rect
=
[
o_window
frame
];
NSRect
contentRect
=
[
o_window
contentRectForFrameRect
:[
o_window
frame
]];
NSRect
o_rect
=
[
o_window
contentRectForFrameRect
:[
o_window
frame
]];
/*First, check if the playlist is visible*/
/*First, check if the playlist is visible*/
if
(
o_rect
.
size
.
height
<=
200
)
if
(
contentRect
.
size
.
height
<=
169
.
)
{
{
o_restore_rect
=
o_r
ect
;
o_restore_rect
=
contentR
ect
;
b_restore_size
=
true
;
b_restore_size
=
true
;
b_small_window
=
YES
;
/* we know we are small, make sure this is actually set (see case below) */
b_small_window
=
YES
;
/* we know we are small, make sure this is actually set (see case below) */
/* make large */
/* make large */
if
(
o_size_with_playlist
.
height
>
200
)
if
(
o_size_with_playlist
.
height
>
169
.
)
{
o_rect
.
size
.
height
=
o_size_with_playlist
.
height
;
o_rect
.
size
.
height
=
o_size_with_playlist
.
height
;
}
else
{
else
o_rect
.
size
.
height
=
500
;
o_rect
.
size
.
height
=
500
.;
}
if
(
o_size_with_playlist
.
width
>
[
o_window
minSize
].
width
)
if
(
o_size_with_playlist
.
width
>=
[
o_window
contentMinSize
].
width
)
{
o_rect
.
size
.
width
=
o_size_with_playlist
.
width
;
o_rect
.
size
.
width
=
o_size_with_playlist
.
width
;
}
else
{
else
o_rect
.
size
.
width
=
500
;
o_rect
.
size
.
width
=
[
o_window
contentMinSize
].
width
;
}
o_rect
.
origin
.
x
=
contentRect
.
origin
.
x
;
o_rect
.
origin
.
y
=
contentRect
.
origin
.
y
-
o_rect
.
size
.
height
+
[
o_window
contentMinSize
].
height
;
o_rect
.
size
.
height
=
(
o_size_with_playlist
.
height
>
200
)
?
o_rect
=
[
o_window
frameRectForContentRect
:
o_rect
];
o_size_with_playlist
.
height
:
500
;
o_rect
.
origin
.
x
=
[
o_window
frame
].
origin
.
x
;
o_rect
.
origin
.
y
=
[
o_window
frame
].
origin
.
y
-
o_rect
.
size
.
height
+
[
o_window
minSize
].
height
;
NSRect
screenRect
=
[[
o_window
screen
]
visibleFrame
];
NSRect
screenRect
=
[[
o_window
screen
]
visibleFrame
];
if
(
!
NSContainsRect
(
screenRect
,
o_rect
)
)
{
if
(
!
NSContainsRect
(
screenRect
,
o_rect
)
)
{
...
@@ -2285,21 +2291,31 @@ end:
...
@@ -2285,21 +2291,31 @@ end:
else
else
{
{
NSSize
curSize
=
o_rect
.
size
;
NSSize
curSize
=
o_rect
.
size
;
/* make small */
o_rect
.
size
.
height
=
[
o_window
minSize
].
height
;
o_rect
.
size
.
width
=
[
o_window
minSize
].
width
;
o_rect
.
origin
.
x
=
[
o_window
frame
].
origin
.
x
;
/* Calculate the position of the lower right corner after resize */
o_rect
.
origin
.
y
=
[
o_window
frame
].
origin
.
y
+
[
o_window
frame
].
size
.
height
-
[
o_window
minSize
].
height
;
if
(
b_restore_size
)
if
(
b_restore_size
)
{
o_rect
=
o_restore_rect
;
o_rect
=
o_restore_rect
;
if
(
o_rect
.
size
.
height
<
[
o_window
contentMinSize
].
height
)
o_rect
.
size
.
height
=
[
o_window
contentMinSize
].
height
;
if
(
o_rect
.
size
.
width
<
[
o_window
contentMinSize
].
width
)
o_rect
.
size
.
width
=
[
o_window
contentMinSize
].
width
;
}
else
{
NSRect
contentRect
=
[
o_window
contentRectForFrameRect
:[
o_window
frame
]];
/* make small */
o_rect
.
size
.
height
=
[
o_window
contentMinSize
].
height
;
o_rect
.
size
.
width
=
[
o_window
contentMinSize
].
width
;
o_rect
.
origin
.
x
=
contentRect
.
origin
.
x
;
/* Calculate the position of the lower right corner after resize */
o_rect
.
origin
.
y
=
contentRect
.
origin
.
y
+
contentRect
.
size
.
height
-
[
o_window
contentMinSize
].
height
;
}
[
o_playlist_view
setAutoresizesSubviews
:
NO
];
[
o_playlist_view
setAutoresizesSubviews
:
NO
];
[
o_playlist_view
removeFromSuperview
];
[
o_playlist_view
removeFromSuperview
];
[
o_btn_playlist
setState
:
NO
];
[
o_btn_playlist
setState
:
NO
];
b_small_window
=
NO
;
/* we aren't small here just yet. we are doing an animated resize after this */
b_small_window
=
NO
;
/* we aren't small here just yet. we are doing an animated resize after this */
o_rect
=
[
o_window
frameRectForContentRect
:
o_rect
];
}
}
[
o_window
setFrame
:
o_rect
display
:
YES
animate
:
YES
];
[
o_window
setFrame
:
o_rect
display
:
YES
animate
:
YES
];
...
@@ -2307,7 +2323,7 @@ end:
...
@@ -2307,7 +2323,7 @@ end:
-
(
void
)
updateTogglePlaylistState
-
(
void
)
updateTogglePlaylistState
{
{
if
(
[
o_window
frame
].
size
.
height
<=
200
)
if
(
[
o_window
contentRectForFrameRect
:[
o_window
frame
]].
size
.
height
<=
169
.
)
{
{
[
o_btn_playlist
setState
:
NO
];
[
o_btn_playlist
setState
:
NO
];
}
}
...
@@ -2319,13 +2335,16 @@ end:
...
@@ -2319,13 +2335,16 @@ end:
-
(
NSSize
)
windowWillResize
:(
NSWindow
*
)
sender
toSize
:(
NSSize
)
proposedFrameSize
-
(
NSSize
)
windowWillResize
:(
NSWindow
*
)
sender
toSize
:(
NSSize
)
proposedFrameSize
{
{
/* Not triggered on a window resize or maxification of the window. only by window mouse dragging resize */
/* Not triggered on a window resize or maxification of the window. only by window mouse dragging resize */
/*Stores the size the controller one resize, to be able to restore it when
/*Stores the size the controller one resize, to be able to restore it when
toggling the playlist*/
toggling the playlist*/
o_size_with_playlist
=
proposedFrameSize
;
o_size_with_playlist
=
proposedFrameSize
;
if
(
proposedFrameSize
.
height
<=
200
)
NSRect
rect
;
rect
.
size
=
proposedFrameSize
;
if
(
[
o_window
contentRectForFrameRect
:
rect
].
size
.
height
<=
169
.
)
{
{
if
(
b_small_window
==
NO
)
if
(
b_small_window
==
NO
)
{
{
...
@@ -2350,7 +2369,8 @@ end:
...
@@ -2350,7 +2369,8 @@ end:
{
{
/* If large and coming from small then show */
/* If large and coming from small then show */
[
o_playlist_view
setAutoresizesSubviews
:
YES
];
[
o_playlist_view
setAutoresizesSubviews
:
YES
];
[
o_playlist_view
setFrame
:
NSMakeRect
(
0
,
0
,
[
o_window
frame
].
size
.
width
,
[
o_window
frame
].
size
.
height
-
[
o_window
minSize
].
height
)];
NSRect
contentRect
=
[
o_window
contentRectForFrameRect
:[
o_window
frame
]];
[
o_playlist_view
setFrame
:
NSMakeRect
(
0
,
0
,
contentRect
.
size
.
width
,
contentRect
.
size
.
height
-
[
o_window
contentMinSize
].
height
)];
[
o_playlist_view
setNeedsDisplay
:
YES
];
[
o_playlist_view
setNeedsDisplay
:
YES
];
[[
o_window
contentView
]
addSubview
:
o_playlist_view
];
[[
o_window
contentView
]
addSubview
:
o_playlist_view
];
b_small_window
=
NO
;
b_small_window
=
NO
;
...
@@ -2358,6 +2378,8 @@ end:
...
@@ -2358,6 +2378,8 @@ end:
[
self
updateTogglePlaylistState
];
[
self
updateTogglePlaylistState
];
}
}
#pragma mark -
@end
@end
@implementation
VLCMain
(
NSMenuValidation
)
@implementation
VLCMain
(
NSMenuValidation
)
...
...
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