Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
4fdb3cc9
Commit
4fdb3cc9
authored
Feb 08, 2013
by
David Fuhrmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: add lion fullscreen support for detached windows
parent
b302bf06
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
189 additions
and
134 deletions
+189
-134
modules/gui/macosx/ControlsBar.m
modules/gui/macosx/ControlsBar.m
+24
-7
modules/gui/macosx/MainWindow.h
modules/gui/macosx/MainWindow.h
+0
-5
modules/gui/macosx/MainWindow.m
modules/gui/macosx/MainWindow.m
+21
-111
modules/gui/macosx/MainWindowTitle.m
modules/gui/macosx/MainWindowTitle.m
+2
-8
modules/gui/macosx/VLCVoutWindowController.h
modules/gui/macosx/VLCVoutWindowController.h
+1
-0
modules/gui/macosx/VLCVoutWindowController.m
modules/gui/macosx/VLCVoutWindowController.m
+9
-1
modules/gui/macosx/Windows.h
modules/gui/macosx/Windows.h
+5
-0
modules/gui/macosx/Windows.m
modules/gui/macosx/Windows.m
+120
-0
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+7
-2
No files found.
modules/gui/macosx/ControlsBar.m
View file @
4fdb3cc9
...
...
@@ -132,6 +132,22 @@
if
([[
o_bottombar_view
window
]
styleMask
]
&
NSResizableWindowMask
)
[
o_resize_view
removeFromSuperviewWithoutNeedingDisplay
];
// remove fullscreen button for lion fullscreen
if
(
b_nativeFullscreenMode
)
{
float
f_width
=
[
o_fullscreen_btn
frame
].
size
.
width
;
NSRect
frame
=
[
o_time_fld
frame
];
frame
.
origin
.
x
+=
f_width
;
[
o_time_fld
setFrame
:
frame
];
frame
=
[
o_progress_view
frame
];
frame
.
size
.
width
=
f_width
+
frame
.
size
.
width
;
[
o_progress_view
setFrame
:
frame
];
[
o_fullscreen_btn
removeFromSuperviewWithoutNeedingDisplay
];
}
}
#pragma mark -
...
...
@@ -382,6 +398,7 @@
{
[
super
awakeFromNib
];
[
o_stop_btn
setToolTip
:
_NS
(
"Stop"
)];
[[
o_stop_btn
cell
]
accessibilitySetOverrideValue
:
_NS
(
"Click to stop playback."
)
forAttribute
:
NSAccessibilityDescriptionAttribute
];
[[
o_stop_btn
cell
]
accessibilitySetOverrideValue
:[
o_stop_btn
toolTip
]
forAttribute
:
NSAccessibilityTitleAttribute
];
...
...
@@ -484,11 +501,14 @@
[
o_volume_sld
setEnabled
:
b_mute
];
[
o_volume_up_btn
setEnabled
:
b_mute
];
// remove fullscreen button for lion fullscreen
if
(
b_nativeFullscreenMode
)
{
NSRect
frame
;
float
f_width
=
[
o_fullscreen_btn
frame
].
size
.
width
;
// == [o_fullscreen_btn frame].size.width;
// button is already removed!
float
f_width
=
29
.;
#define moveItem(item) \
frame = [item frame]; \
frame.origin.x = f_width + frame.origin.x; \
...
...
@@ -499,16 +519,12 @@ frame.origin.x = f_width + frame.origin.x; \
moveItem
(
o_volume_sld
);
moveItem
(
o_volume_track_view
);
moveItem
(
o_volume_down_btn
);
moveItem
(
o_time_fld
);
#undef moveItem
frame
=
[
o_progress_view
frame
];
frame
.
size
.
width
=
f_width
+
frame
.
size
.
width
;
[
o_progress_view
setFrame
:
frame
];
[
o_fullscreen_btn
removeFromSuperviewWithoutNeedingDisplay
];
// time field and progress bar are moved in super method!
}
b_show_jump_buttons
=
config_GetInt
(
VLCIntf
,
"macosx-show-playback-buttons"
);
if
(
b_show_jump_buttons
)
[
self
addJumpButtons
:
YES
];
...
...
@@ -518,6 +534,7 @@ frame.origin.x = f_width + frame.origin.x; \
[
self
removePlaymodeButtons
:
YES
];
[[
VLCMain
sharedInstance
]
playbackModeUpdated
];
}
#pragma mark -
...
...
modules/gui/macosx/MainWindow.h
View file @
4fdb3cc9
...
...
@@ -140,11 +140,6 @@
-
(
void
)
hideMouseCursor
:(
NSTimer
*
)
timer
;
-
(
void
)
recreateHideMouseTimer
;
/* lion's native fullscreen handling */
-
(
void
)
windowWillEnterFullScreen
:(
NSNotification
*
)
notification
;
-
(
void
)
windowDidEnterFullScreen
:(
NSNotification
*
)
notification
;
-
(
void
)
windowWillExitFullScreen
:(
NSNotification
*
)
notification
;
@end
@interface
VLCDetachedVideoWindow
:
VLCVideoWindowCommon
...
...
modules/gui/macosx/MainWindow.m
View file @
4fdb3cc9
...
...
@@ -148,6 +148,9 @@ static VLCMainWindow *_o_sharedInstance = nil;
-
(
void
)
awakeFromNib
{
// sets lion fullscreen behaviour
[
super
awakeFromNib
];
BOOL
b_splitviewShouldBeHidden
=
NO
;
/* setup the styled interface */
...
...
@@ -200,12 +203,6 @@ static VLCMainWindow *_o_sharedInstance = nil;
[
o_dropzone_view
setFrame
:
[
o_playlist_table
frame
]];
[
o_left_split_view
setFrame
:
[
o_sidebar_view
frame
]];
if
(
b_nativeFullscreenMode
)
{
[
self
setCollectionBehavior
:
NSWindowCollectionBehaviorFullScreenPrimary
];
}
else
{
[
o_titlebar_view
setFullscreenButtonHidden
:
YES
];
}
if
(
!
OSX_SNOW_LEOPARD
)
{
/* the default small size of the search field is slightly different on Lion, let's work-around that */
NSRect
frame
;
...
...
@@ -790,7 +787,23 @@ static VLCMainWindow *_o_sharedInstance = nil;
[
NSCursor
setHiddenUntilMouseMoves
:
YES
];
}
#pragma mark -
#pragma mark Lion native fullscreen handling
-
(
void
)
windowWillEnterFullScreen
:(
NSNotification
*
)
notification
{
[
super
windowWillEnterFullScreen
:
notification
];
// update split view frame after removing title bar
[
o_split_view
setFrame
:
[
o_video_view
frame
]];
}
-
(
void
)
windowWillExitFullScreen
:(
NSNotification
*
)
notification
{
[
super
windowWillExitFullScreen
:
notification
];
// update split view frame after readding title bar
[
o_split_view
setFrame
:
[
o_video_view
frame
]];
}
#pragma mark -
#pragma mark Fullscreen support
...
...
@@ -834,109 +847,6 @@ static VLCMainWindow *_o_sharedInstance = nil;
/* fullscreenAnimation will be unlocked when animation ends */
}
#pragma mark -
#pragma mark Lion native fullscreen handling
-
(
void
)
windowWillEnterFullScreen
:(
NSNotification
*
)
notification
{
// workaround, see #6668
[
NSApp
setPresentationOptions
:(
NSApplicationPresentationFullScreen
|
NSApplicationPresentationAutoHideDock
|
NSApplicationPresentationAutoHideMenuBar
)];
var_SetBool
(
pl_Get
(
VLCIntf
),
"fullscreen"
,
true
);
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
{
var_SetBool
(
p_vout
,
"fullscreen"
,
true
);
vlc_object_release
(
p_vout
);
}
[
o_video_view
setFrame
:
[[
self
contentView
]
frame
]];
b_fullscreen
=
YES
;
[
self
recreateHideMouseTimer
];
i_originalLevel
=
[
self
level
];
[[[
VLCMain
sharedInstance
]
voutController
]
updateWindowLevelForHelperWindows
:
NSNormalWindowLevel
];
[
self
setLevel
:
NSNormalWindowLevel
];
if
(
b_dark_interface
)
{
[
o_titlebar_view
removeFromSuperviewWithoutNeedingDisplay
];
NSRect
winrect
;
CGFloat
f_titleBarHeight
=
[
o_titlebar_view
frame
].
size
.
height
;
winrect
=
[
self
frame
];
winrect
.
size
.
height
=
winrect
.
size
.
height
-
f_titleBarHeight
;
[
self
setFrame
:
winrect
display
:
NO
animate
:
NO
];
winrect
=
[
o_split_view
frame
];
winrect
.
size
.
height
=
winrect
.
size
.
height
+
f_titleBarHeight
;
[
o_split_view
setFrame
:
winrect
];
}
if
([[
VLCMain
sharedInstance
]
activeVideoPlayback
])
[[
o_controls_bar
bottomBarView
]
setHidden
:
YES
];
[
self
setMovableByWindowBackground
:
NO
];
}
-
(
void
)
windowDidEnterFullScreen
:(
NSNotification
*
)
notification
{
// Indeed, we somehow can have an "inactive" fullscreen (but a visible window!).
// But this creates some problems when leaving fs over remote intfs, so activate app here.
[
NSApp
activateIgnoringOtherApps
:
YES
];
[
o_fspanel
setVoutWasUpdated
:
self
];
[
o_fspanel
setActive
:
nil
];
NSArray
*
subviews
=
[[
self
videoView
]
subviews
];
NSUInteger
count
=
[
subviews
count
];
for
(
NSUInteger
x
=
0
;
x
<
count
;
x
++
)
{
if
([[
subviews
objectAtIndex
:
x
]
respondsToSelector
:
@selector
(
reshape
)])
[[
subviews
objectAtIndex
:
x
]
reshape
];
}
}
-
(
void
)
windowWillExitFullScreen
:(
NSNotification
*
)
notification
{
var_SetBool
(
pl_Get
(
VLCIntf
),
"fullscreen"
,
false
);
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
{
var_SetBool
(
p_vout
,
"fullscreen"
,
false
);
vlc_object_release
(
p_vout
);
}
[
o_video_view
setFrame
:
[
o_split_view
frame
]];
[
NSCursor
setHiddenUntilMouseMoves
:
NO
];
[
o_fspanel
setNonActive
:
nil
];
[[[
VLCMain
sharedInstance
]
voutController
]
updateWindowLevelForHelperWindows
:
i_originalLevel
];
[
self
setLevel
:
i_originalLevel
];
b_fullscreen
=
NO
;
if
(
b_dark_interface
)
{
NSRect
winrect
;
CGFloat
f_titleBarHeight
=
[
o_titlebar_view
frame
].
size
.
height
;
winrect
=
[
self
frame
];
[
o_titlebar_view
setFrame
:
NSMakeRect
(
0
,
winrect
.
size
.
height
-
f_titleBarHeight
,
winrect
.
size
.
width
,
f_titleBarHeight
)];
[[
self
contentView
]
addSubview
:
o_titlebar_view
];
winrect
.
size
.
height
=
winrect
.
size
.
height
+
f_titleBarHeight
;
[
self
setFrame
:
winrect
display
:
NO
animate
:
NO
];
winrect
=
[
o_split_view
frame
];
winrect
.
size
.
height
=
winrect
.
size
.
height
-
f_titleBarHeight
;
[
o_split_view
setFrame
:
winrect
];
[
o_video_view
setFrame
:
winrect
];
}
if
([[
VLCMain
sharedInstance
]
activeVideoPlayback
])
[[
o_controls_bar
bottomBarView
]
setHidden
:
NO
];
[
self
setMovableByWindowBackground
:
YES
];
}
#pragma mark -
#pragma mark split view delegate
-
(
CGFloat
)
splitView
:(
NSSplitView
*
)
splitView
constrainMaxCoordinate
:(
CGFloat
)
proposedMax
ofSubviewAt
:(
NSInteger
)
dividerIndex
...
...
@@ -1349,6 +1259,8 @@ static VLCMainWindow *_o_sharedInstance = nil;
-
(
void
)
awakeFromNib
{
// sets lion fullscreen behaviour
[
super
awakeFromNib
];
[
self
setAcceptsMouseMovedEvents
:
YES
];
if
(
b_dark_interface
)
{
...
...
@@ -1366,8 +1278,6 @@ static VLCMainWindow *_o_sharedInstance = nil;
[
o_titlebar_view
setFrame
:
NSMakeRect
(
0
,
winrect
.
size
.
height
-
f_titleBarHeight
,
winrect
.
size
.
width
,
f_titleBarHeight
)];
[[
self
contentView
]
addSubview
:
o_titlebar_view
positioned
:
NSWindowAbove
relativeTo
:
nil
];
// native fs not supported with detached view yet
[
o_titlebar_view
setFullscreenButtonHidden
:
YES
];
}
else
{
[
self
setBackgroundColor
:
[
NSColor
blackColor
]];
}
...
...
modules/gui/macosx/MainWindowTitle.m
View file @
4fdb3cc9
...
...
@@ -174,14 +174,8 @@
else
if
(
sender
==
o_green_btn
)
[[
self
window
]
performZoom
:
sender
];
else
if
(
sender
==
o_fullscreen_btn
)
{
// set fs directly to true, as the vars can be already true in some configs
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
{
var_SetBool
(
p_vout
,
"fullscreen"
,
true
);
vlc_object_release
(
p_vout
);
}
else
{
// e.g. lion fullscreen toggle
[[
VLCMain
sharedInstance
]
setFullscreen
:
true
forWindow
:
nil
];
}
// same action as native fs button
[[
self
window
]
toggleFullScreen
:
self
];
}
else
msg_Err
(
VLCIntf
,
"unknown button action sender"
);
...
...
modules/gui/macosx/VLCVoutWindowController.h
View file @
4fdb3cc9
...
...
@@ -47,6 +47,7 @@
-
(
void
)
removeVoutforDisplay
:(
NSValue
*
)
o_key
;
-
(
void
)
updateWindowsControlsBarWithSelector
:(
SEL
)
aSel
;
-
(
VLCVideoWindowCommon
*
)
getWindow
:(
vout_window_t
*
)
p_wnd
;
-
(
void
)
updateWindowsUsingBlock
:(
void
(
^
)(
VLCVideoWindowCommon
*
o_window
))
windowUpdater
;
-
(
void
)
updateWindow
:(
vout_window_t
*
)
p_wnd
withSelector
:(
SEL
)
aSel
;
...
...
modules/gui/macosx/VLCVoutWindowController.m
View file @
4fdb3cc9
...
...
@@ -122,7 +122,7 @@
[[
VLCMainWindow
sharedInstance
]
setNonembedded
:
YES
];
b_nonembedded
=
YES
;
}
else
{
if
((
var_InheritBool
(
VLCIntf
,
"embedded-video"
)
&&
!
b_multiple_vout_windows
)
||
b_nativeFullscreenMode
)
{
if
((
var_InheritBool
(
VLCIntf
,
"embedded-video"
)
&&
!
b_multiple_vout_windows
))
{
// setup embedded video
o_vout_view
=
[[[
VLCMainWindow
sharedInstance
]
videoView
]
retain
];
o_new_video_window
=
[[
VLCMainWindow
sharedInstance
]
retain
];
...
...
@@ -233,6 +233,14 @@
[
o_window
performSelector
:
aSel
];
}
-
(
VLCVideoWindowCommon
*
)
getWindow
:(
vout_window_t
*
)
p_wnd
{
VLCVideoWindowCommon
*
o_window
=
[
o_vout_dict
objectForKey
:[
NSValue
valueWithPointer
:
p_wnd
]];
assert
(
o_window
);
return
o_window
;
}
-
(
void
)
updateWindowsUsingBlock
:(
void
(
^
)(
VLCVideoWindowCommon
*
o_window
))
windowUpdater
{
[
o_vout_dict
enumerateKeysAndObjectsUsingBlock
:
^
(
id
key
,
id
obj
,
BOOL
*
stop
)
{
...
...
modules/gui/macosx/Windows.h
View file @
4fdb3cc9
...
...
@@ -114,4 +114,9 @@ static const float f_min_video_height = 70.0;
-
(
void
)
enterFullscreen
;
-
(
void
)
leaveFullscreen
;
/* lion fullscreen handling */
-
(
void
)
windowWillEnterFullScreen
:(
NSNotification
*
)
notification
;
-
(
void
)
windowDidEnterFullScreen
:(
NSNotification
*
)
notification
;
-
(
void
)
windowWillExitFullScreen
:(
NSNotification
*
)
notification
;
@end
modules/gui/macosx/Windows.m
View file @
4fdb3cc9
...
...
@@ -275,6 +275,23 @@
[
super
dealloc
];
}
-
(
void
)
awakeFromNib
{
BOOL
b_nativeFullscreenMode
=
NO
;
#ifdef MAC_OS_X_VERSION_10_7
if
(
!
OSX_SNOW_LEOPARD
)
b_nativeFullscreenMode
=
var_InheritBool
(
VLCIntf
,
"macosx-nativefullscreenmode"
);
#endif
if
(
b_nativeFullscreenMode
)
{
[
self
setCollectionBehavior
:
NSWindowCollectionBehaviorFullScreenPrimary
];
}
else
{
[
o_titlebar_view
setFullscreenButtonHidden
:
YES
];
}
[
super
awakeFromNib
];
}
-
(
void
)
setTitle
:(
NSString
*
)
title
{
if
(
!
title
||
[
title
length
]
<
1
)
...
...
@@ -524,6 +541,109 @@
return
proposedFrameSize
;
}
#pragma mark -
#pragma mark Lion native fullscreen handling
-
(
void
)
windowWillEnterFullScreen
:(
NSNotification
*
)
notification
{
// workaround, see #6668
[
NSApp
setPresentationOptions
:(
NSApplicationPresentationFullScreen
|
NSApplicationPresentationAutoHideDock
|
NSApplicationPresentationAutoHideMenuBar
)];
var_SetBool
(
pl_Get
(
VLCIntf
),
"fullscreen"
,
true
);
vout_thread_t
*
p_vout
=
getVoutForActiveWindow
();
if
(
p_vout
)
{
var_SetBool
(
p_vout
,
"fullscreen"
,
true
);
vlc_object_release
(
p_vout
);
}
[
o_video_view
setFrame
:
[[
self
contentView
]
frame
]];
[[
VLCMainWindow
sharedInstance
]
setFullscreen
:
YES
];
[[
VLCMainWindow
sharedInstance
]
recreateHideMouseTimer
];
i_originalLevel
=
[
self
level
];
[[[
VLCMain
sharedInstance
]
voutController
]
updateWindowLevelForHelperWindows
:
NSNormalWindowLevel
];
[
self
setLevel
:
NSNormalWindowLevel
];
if
(
b_dark_interface
)
{
[
o_titlebar_view
removeFromSuperviewWithoutNeedingDisplay
];
NSRect
winrect
;
CGFloat
f_titleBarHeight
=
[
o_titlebar_view
frame
].
size
.
height
;
winrect
=
[
self
frame
];
winrect
.
size
.
height
=
winrect
.
size
.
height
-
f_titleBarHeight
;
[
self
setFrame
:
winrect
display
:
NO
animate
:
NO
];
}
if
([[
VLCMain
sharedInstance
]
activeVideoPlayback
])
[[
o_controls_bar
bottomBarView
]
setHidden
:
YES
];
[
self
setMovableByWindowBackground
:
NO
];
}
-
(
void
)
windowDidEnterFullScreen
:(
NSNotification
*
)
notification
{
// Indeed, we somehow can have an "inactive" fullscreen (but a visible window!).
// But this creates some problems when leaving fs over remote intfs, so activate app here.
[
NSApp
activateIgnoringOtherApps
:
YES
];
[[[
VLCMainWindow
sharedInstance
]
fsPanel
]
setVoutWasUpdated
:
self
];
[[[
VLCMainWindow
sharedInstance
]
fsPanel
]
setActive
:
nil
];
NSArray
*
subviews
=
[[
self
videoView
]
subviews
];
NSUInteger
count
=
[
subviews
count
];
for
(
NSUInteger
x
=
0
;
x
<
count
;
x
++
)
{
if
([[
subviews
objectAtIndex
:
x
]
respondsToSelector
:
@selector
(
reshape
)])
[[
subviews
objectAtIndex
:
x
]
reshape
];
}
}
-
(
void
)
windowWillExitFullScreen
:(
NSNotification
*
)
notification
{
var_SetBool
(
pl_Get
(
VLCIntf
),
"fullscreen"
,
false
);
vout_thread_t
*
p_vout
=
getVoutForActiveWindow
();
if
(
p_vout
)
{
var_SetBool
(
p_vout
,
"fullscreen"
,
false
);
vlc_object_release
(
p_vout
);
}
[
NSCursor
setHiddenUntilMouseMoves
:
NO
];
[[[
VLCMainWindow
sharedInstance
]
fsPanel
]
setNonActive
:
nil
];
[[[
VLCMain
sharedInstance
]
voutController
]
updateWindowLevelForHelperWindows
:
i_originalLevel
];
[
self
setLevel
:
i_originalLevel
];
[[
VLCMainWindow
sharedInstance
]
setFullscreen
:
NO
];
if
(
b_dark_interface
)
{
NSRect
winrect
;
CGFloat
f_titleBarHeight
=
[
o_titlebar_view
frame
].
size
.
height
;
winrect
=
[
self
frame
];
[
o_titlebar_view
setFrame
:
NSMakeRect
(
0
,
winrect
.
size
.
height
-
f_titleBarHeight
,
winrect
.
size
.
width
,
f_titleBarHeight
)];
[[
self
contentView
]
addSubview
:
o_titlebar_view
];
winrect
.
size
.
height
=
winrect
.
size
.
height
+
f_titleBarHeight
;
[
self
setFrame
:
winrect
display
:
NO
animate
:
NO
];
winrect
=
[
o_video_view
frame
];
winrect
.
size
.
height
-=
f_titleBarHeight
;
[
o_video_view
setFrame
:
winrect
];
}
NSRect
videoViewFrame
=
[
o_video_view
frame
];
videoViewFrame
.
origin
.
y
=
[[
o_controls_bar
bottomBarView
]
frame
].
size
.
height
;
videoViewFrame
.
size
.
height
-=
[[
o_controls_bar
bottomBarView
]
frame
].
size
.
height
;
[
o_video_view
setFrame
:
videoViewFrame
];
[[
o_controls_bar
bottomBarView
]
setHidden
:
NO
];
[
self
setMovableByWindowBackground
:
YES
];
}
#pragma mark -
#pragma mark Fullscreen Logic
...
...
modules/gui/macosx/intf.m
View file @
4fdb3cc9
...
...
@@ -1266,8 +1266,13 @@ static VLCMain *_o_sharedMainInstance = nil;
if
(
b_nativeFullscreenMode
)
{
// this is called twice in certain situations, so only toogle if we really need to
if
((
b_fullscreen
&&
!
([
NSApp
currentSystemPresentationOptions
]
&
NSApplicationPresentationFullScreen
))
||
(
!
b_fullscreen
&&
([
NSApp
currentSystemPresentationOptions
]
&
NSApplicationPresentationFullScreen
)))
[
o_mainwindow
toggleFullScreen
:
self
];
(
!
b_fullscreen
&&
([
NSApp
currentSystemPresentationOptions
]
&
NSApplicationPresentationFullScreen
)))
{
if
(
p_wnd
)
{
VLCVideoWindowCommon
*
window
=
[
o_vout_controller
getWindow
:
p_wnd
];
[
window
toggleFullScreen
:
self
];
}
else
[
o_mainwindow
toggleFullScreen
:
self
];
// TODO
}
if
(
b_fullscreen
)
[
NSApp
setPresentationOptions
:(
NSApplicationPresentationFullScreen
|
NSApplicationPresentationAutoHideDock
|
NSApplicationPresentationAutoHideMenuBar
)];
...
...
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