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
a3349c78
Commit
a3349c78
authored
Jan 08, 2012
by
Felix Paul Kühne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx: fix DVD menu control and usage of hotkeys with modifiers
fixes both #5733 and #5806
parent
b33269e7
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
37 additions
and
138 deletions
+37
-138
extras/package/macosx/Resources/English.lproj/MainMenu.xib
extras/package/macosx/Resources/English.lproj/MainMenu.xib
+5
-6
modules/gui/macosx/MainWindow.m
modules/gui/macosx/MainWindow.m
+4
-2
modules/gui/macosx/VideoView.h
modules/gui/macosx/VideoView.h
+1
-4
modules/gui/macosx/VideoView.m
modules/gui/macosx/VideoView.m
+21
-125
modules/video_output/macosx.m
modules/video_output/macosx.m
+6
-1
No files found.
extras/package/macosx/Resources/English.lproj/MainMenu.xib
View file @
a3349c78
...
@@ -355,14 +355,14 @@
...
@@ -355,14 +355,14 @@
<object
class=
"NSOutlineView"
id=
"23448837"
>
<object
class=
"NSOutlineView"
id=
"23448837"
>
<reference
key=
"NSNextResponder"
ref=
"343242432"
/>
<reference
key=
"NSNextResponder"
ref=
"343242432"
/>
<int
key=
"NSvFlags"
>
4370
</int>
<int
key=
"NSvFlags"
>
4370
</int>
<string
key=
"NSFrameSize"
>
{48
2
, 236}
</string>
<string
key=
"NSFrameSize"
>
{48
0
, 236}
</string>
<reference
key=
"NSSuperview"
ref=
"343242432"
/>
<reference
key=
"NSSuperview"
ref=
"343242432"
/>
<int
key=
"NSViewLayerContentsRedrawPolicy"
>
2
</int>
<int
key=
"NSViewLayerContentsRedrawPolicy"
>
2
</int>
<bool
key=
"NSEnabled"
>
YES
</bool>
<bool
key=
"NSEnabled"
>
YES
</bool>
<object
class=
"NSTableHeaderView"
key=
"NSHeaderView"
id=
"823165105"
>
<object
class=
"NSTableHeaderView"
key=
"NSHeaderView"
id=
"823165105"
>
<reference
key=
"NSNextResponder"
ref=
"576307303"
/>
<reference
key=
"NSNextResponder"
ref=
"576307303"
/>
<int
key=
"NSvFlags"
>
256
</int>
<int
key=
"NSvFlags"
>
256
</int>
<string
key=
"NSFrameSize"
>
{48
2
, 17}
</string>
<string
key=
"NSFrameSize"
>
{48
0
, 17}
</string>
<reference
key=
"NSSuperview"
ref=
"576307303"
/>
<reference
key=
"NSSuperview"
ref=
"576307303"
/>
<int
key=
"NSViewLayerContentsRedrawPolicy"
>
2
</int>
<int
key=
"NSViewLayerContentsRedrawPolicy"
>
2
</int>
<reference
key=
"NSTableView"
ref=
"23448837"
/>
<reference
key=
"NSTableView"
ref=
"23448837"
/>
...
@@ -409,7 +409,7 @@
...
@@ -409,7 +409,7 @@
</object>
</object>
<object
class=
"NSTableColumn"
id=
"965199398"
>
<object
class=
"NSTableColumn"
id=
"965199398"
>
<string
key=
"NSIdentifier"
>
name
</string>
<string
key=
"NSIdentifier"
>
name
</string>
<double
key=
"NSWidth"
>
22
2
</double>
<double
key=
"NSWidth"
>
22
0
</double>
<double
key=
"NSMinWidth"
>
16
</double>
<double
key=
"NSMinWidth"
>
16
</double>
<double
key=
"NSMaxWidth"
>
1000
</double>
<double
key=
"NSMaxWidth"
>
1000
</double>
<object
class=
"NSTableHeaderCell"
key=
"NSHeaderCell"
>
<object
class=
"NSTableHeaderCell"
key=
"NSHeaderCell"
>
...
@@ -524,10 +524,9 @@
...
@@ -524,10 +524,9 @@
</object>
</object>
<object
class=
"NSScroller"
id=
"297523533"
>
<object
class=
"NSScroller"
id=
"297523533"
>
<reference
key=
"NSNextResponder"
ref=
"915491793"
/>
<reference
key=
"NSNextResponder"
ref=
"915491793"
/>
<int
key=
"NSvFlags"
>
256
</int>
<int
key=
"NSvFlags"
>
-2147483392
</int>
<string
key=
"NSFrame"
>
{{1, 238}, {480, 15}}
</string>
<string
key=
"NSFrame"
>
{{1, 238}, {480, 15}}
</string>
<reference
key=
"NSSuperview"
ref=
"915491793"
/>
<reference
key=
"NSSuperview"
ref=
"915491793"
/>
<bool
key=
"NSEnabled"
>
YES
</bool>
<int
key=
"NSsFlags"
>
1
</int>
<int
key=
"NSsFlags"
>
1
</int>
<reference
key=
"NSTarget"
ref=
"915491793"
/>
<reference
key=
"NSTarget"
ref=
"915491793"
/>
<string
key=
"NSAction"
>
_doScroller:
</string>
<string
key=
"NSAction"
>
_doScroller:
</string>
...
@@ -553,7 +552,7 @@
...
@@ -553,7 +552,7 @@
<reference
key=
"NSSuperview"
ref=
"440594360"
/>
<reference
key=
"NSSuperview"
ref=
"440594360"
/>
<reference
key=
"NSNextKeyView"
ref=
"343242432"
/>
<reference
key=
"NSNextKeyView"
ref=
"343242432"
/>
<int
key=
"NSViewLayerContentsRedrawPolicy"
>
2
</int>
<int
key=
"NSViewLayerContentsRedrawPolicy"
>
2
</int>
<int
key=
"NSsFlags"
>
133
810
</int>
<int
key=
"NSsFlags"
>
133
682
</int>
<reference
key=
"NSVScroller"
ref=
"573737110"
/>
<reference
key=
"NSVScroller"
ref=
"573737110"
/>
<reference
key=
"NSHScroller"
ref=
"297523533"
/>
<reference
key=
"NSHScroller"
ref=
"297523533"
/>
<reference
key=
"NSContentView"
ref=
"343242432"
/>
<reference
key=
"NSContentView"
ref=
"343242432"
/>
...
...
modules/gui/macosx/MainWindow.m
View file @
a3349c78
...
@@ -1172,6 +1172,8 @@ static VLCMainWindow *_o_sharedInstance = nil;
...
@@ -1172,6 +1172,8 @@ static VLCMainWindow *_o_sharedInstance = nil;
if
(
!
b_videoPlayback
)
if
(
!
b_videoPlayback
)
[
o_fspanel
setNonActive
:
nil
];
[
o_fspanel
setNonActive
:
nil
];
}
}
if
(
b_videoPlayback
)
[
self
makeFirstResponder
:
o_video_view
];
}
}
-
(
void
)
resizeWindow
-
(
void
)
resizeWindow
...
@@ -1211,9 +1213,9 @@ static VLCMainWindow *_o_sharedInstance = nil;
...
@@ -1211,9 +1213,9 @@ static VLCMainWindow *_o_sharedInstance = nil;
// Called automatically if window's acceptsMouseMovedEvents property is true
// Called automatically if window's acceptsMouseMovedEvents property is true
-
(
void
)
mouseMoved
:(
NSEvent
*
)
theEvent
-
(
void
)
mouseMoved
:(
NSEvent
*
)
theEvent
{
{
if
(
b_fullscreen
)
{
if
(
b_fullscreen
)
[
self
recreateHideMouseTimer
];
[
self
recreateHideMouseTimer
];
}
[
super
mouseMoved
:
theEvent
];
[
super
mouseMoved
:
theEvent
];
}
}
...
...
modules/gui/macosx/VideoView.h
View file @
a3349c78
/*****************************************************************************
/*****************************************************************************
* VideoView.h: MacOS X video output module
* VideoView.h: MacOS X video output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 2002-201
1
VLC authors and VideoLAN
* Copyright (C) 2002-201
2
VLC authors and VideoLAN
* $Id$
* $Id$
*
*
* Authors: Derk-Jan Hartman <hartman at videolan dot org>
* Authors: Derk-Jan Hartman <hartman at videolan dot org>
...
@@ -30,8 +30,5 @@
...
@@ -30,8 +30,5 @@
*****************************************************************************/
*****************************************************************************/
@interface
VLCVoutView
:
NSView
@interface
VLCVoutView
:
NSView
{
{
NSView
*
o_view
;
id
o_window
;
}
}
@end
@end
modules/gui/macosx/VideoView.m
View file @
a3349c78
/*****************************************************************************
/*****************************************************************************
* VideoView.m: MacOS X video output module
* VideoView.m: MacOS X video output module
*****************************************************************************
*****************************************************************************
* Copyright (C) 2002-201
1
VLC authors and VideoLAN
* Copyright (C) 2002-201
2
VLC authors and VideoLAN
* $Id$
* $Id$
*
*
* Authors: Derk-Jan Hartman <hartman at videolan dot org>
* Authors: Derk-Jan Hartman <hartman at videolan dot org>
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
#import <vlc_vout_window.h>
#import <vlc_vout_window.h>
#import <vlc_vout_display.h>
#import <vlc_vout_display.h>
#import <vlc_keys.h>
#import <vlc_keys.h>
#import <vlc_mouse.h>
/*****************************************************************************
/*****************************************************************************
* DeviceCallback: Callback triggered when the video-device variable is changed
* DeviceCallback: Callback triggered when the video-device variable is changed
*****************************************************************************/
*****************************************************************************/
...
@@ -60,97 +61,19 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -60,97 +61,19 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
}
}
/*****************************************************************************
/*****************************************************************************
* VLCVoutView implementation
* VLCOpenGLVideoView interface excerpt
* full implementation in modules/video_output/macosx.m:95
*****************************************************************************/
*****************************************************************************/
@implementation
VLCVoutView
@interface
VLCOpenGLVideoView
:
NSOpenGLView
-
(
void
)
setVoutView
:(
id
)
theView
{
vout_thread_t
*
p_vout
=
getVout
();
if
(
!
p_vout
)
return
;
int
i_device
;
NSArray
*
o_screens
=
[
NSScreen
screens
];
if
(
[
o_screens
count
]
<=
0
)
{
msg_Err
(
VLCIntf
,
"no OSX screens available"
);
return
;
}
/* Get the pref value when this is the first time, otherwise retrieve the device from the top level video-device var */
if
(
var_Type
(
p_vout
->
p_libvlc
,
"video-device"
)
==
0
)
{
i_device
=
var_GetInteger
(
p_vout
,
"macosx-vdev"
);
}
else
{
i_device
=
var_GetInteger
(
p_vout
->
p_libvlc
,
"video-device"
);
}
/* Setup the menuitem for the multiple displays. */
if
(
var_Type
(
p_vout
,
"video-device"
)
==
0
)
{
int
i
=
1
;
vlc_value_t
val2
,
text
;
NSScreen
*
o_screen
;
var_Create
(
p_vout
,
"video-device"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
);
text
.
psz_string
=
_
(
"Fullscreen Video Device"
);
var_Change
(
p_vout
,
"video-device"
,
VLC_VAR_SETTEXT
,
&
text
,
NULL
);
NSEnumerator
*
o_enumerator
=
[
o_screens
objectEnumerator
];
val2
.
i_int
=
0
;
text
.
psz_string
=
_
(
"Default"
);
var_Change
(
p_vout
,
"video-device"
,
VLC_VAR_ADDCHOICE
,
&
val2
,
&
text
);
var_Set
(
p_vout
,
"video-device"
,
val2
);
while
(
(
o_screen
=
[
o_enumerator
nextObject
])
!=
NULL
)
{
char
psz_temp
[
255
];
NSRect
s_rect
=
[
o_screen
frame
];
snprintf
(
psz_temp
,
sizeof
(
psz_temp
)
/
sizeof
(
psz_temp
[
0
])
-
1
,
"%s %d (%dx%d)"
,
_
(
"Screen"
),
i
,
(
int
)
s_rect
.
size
.
width
,
(
int
)
s_rect
.
size
.
height
);
text
.
psz_string
=
psz_temp
;
val2
.
i_int
=
(
int
)[
o_screen
displayID
];
var_Change
(
p_vout
,
"video-device"
,
VLC_VAR_ADDCHOICE
,
&
val2
,
&
text
);
if
(
(
int
)[
o_screen
displayID
]
==
i_device
)
{
var_Set
(
p_vout
,
"video-device"
,
val2
);
}
i
++
;
}
var_AddCallback
(
p_vout
,
"video-device"
,
DeviceCallback
,
NULL
);
val2
.
b_bool
=
true
;
var_Set
(
p_vout
,
"intf-change"
,
val2
);
}
/* Add the view. It's automatically resized to fit the window */
if
(
o_view
)
{
[
o_view
removeFromSuperview
];
[
o_view
release
];
}
o_view
=
theView
;
[
o_view
retain
];
[
self
addSubview
:
o_view
];
[
self
setAutoresizesSubviews
:
YES
];
/* make sure that we look alright */
[[
self
window
]
setAlphaValue
:
var_CreateGetFloat
(
p_vout
,
"macosx-opaqueness"
)];
vlc_object_release
(
p_vout
);
}
-
(
void
)
resizeSubviewsWithOldSize
:(
NSSize
)
oldBoundsSize
{
{
[
super
resizeSubviewsWithOldSize
:
oldBoundsSize
];
[
o_view
setFrameSize
:
[
self
frame
].
size
];
}
}
-
(
vout_display_t
*
)
voutDisplay
;
@end
/*****************************************************************************
* VLCVoutView implementation
*****************************************************************************/
@implementation
VLCVoutView
-
(
void
)
closeVout
-
(
void
)
closeVout
{
{
vout_thread_t
*
p_vout
=
getVout
();
vout_thread_t
*
p_vout
=
getVout
();
...
@@ -159,11 +82,6 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -159,11 +82,6 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
var_DelCallback
(
p_vout
,
"video-device"
,
DeviceCallback
,
NULL
);
var_DelCallback
(
p_vout
,
"video-device"
,
DeviceCallback
,
NULL
);
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_vout
);
}
}
/* Make sure we don't see a white flash */
[
o_view
removeFromSuperview
];
[
o_view
release
];
o_view
=
nil
;
}
}
-
(
void
)
scrollWheel
:(
NSEvent
*
)
theEvent
-
(
void
)
scrollWheel
:(
NSEvent
*
)
theEvent
...
@@ -234,9 +152,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -234,9 +152,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
if
(
[
o_event
clickCount
]
<=
1
)
if
(
[
o_event
clickCount
]
<=
1
)
{
{
/* single clicking */
/* single clicking */
var_Get
(
p_vout
,
"mouse-button-down"
,
&
val
);
vout_display_SendEventMousePressed
(
[[[
self
subviews
]
objectAtIndex
:
0
]
voutDisplay
],
MOUSE_BUTTON_LEFT
);
val
.
i_int
|=
1
;
var_Set
(
p_vout
,
"mouse-button-down"
,
val
);
}
}
else
else
{
{
...
@@ -266,9 +182,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -266,9 +182,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
if
(
p_vout
)
if
(
p_vout
)
{
{
var_Get
(
p_vout
,
"mouse-button-down"
,
&
val
);
vout_display_SendEventMousePressed
(
[[[
self
subviews
]
objectAtIndex
:
0
]
voutDisplay
],
MOUSE_BUTTON_CENTER
);
val
.
i_int
|=
2
;
var_Set
(
p_vout
,
"mouse-button-down"
,
val
);
}
}
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_vout
);
}
}
...
@@ -296,15 +210,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -296,15 +210,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
vout_thread_t
*
p_vout
=
getVout
();
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
if
(
p_vout
)
{
{
vlc_value_t
val
;
vout_display_SendEventMouseReleased
(
[[[
self
subviews
]
objectAtIndex
:
0
]
voutDisplay
],
MOUSE_BUTTON_LEFT
);
int
x
,
y
;
var_GetCoords
(
p_vout
,
"mouse-moved"
,
&
x
,
&
y
);
var_SetCoords
(
p_vout
,
"mouse-clicked"
,
x
,
y
);
var_Get
(
p_vout
,
"mouse-button-down"
,
&
val
);
val
.
i_int
&=
~
1
;
var_Set
(
p_vout
,
"mouse-button-down"
,
val
);
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_vout
);
}
}
}
}
...
@@ -319,10 +225,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -319,10 +225,7 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
vout_thread_t
*
p_vout
=
getVout
();
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
if
(
p_vout
)
{
{
vlc_value_t
val
;
vout_display_SendEventMouseReleased
(
[[[
self
subviews
]
objectAtIndex
:
0
]
voutDisplay
],
MOUSE_BUTTON_CENTER
);
var_Get
(
p_vout
,
"mouse-button-down"
,
&
val
);
val
.
i_int
&=
~
2
;
var_Set
(
p_vout
,
"mouse-button-down"
,
val
);
vlc_object_release
(
p_vout
);
vlc_object_release
(
p_vout
);
}
}
}
}
...
@@ -363,22 +266,22 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -363,22 +266,22 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
-
(
void
)
mouseMoved
:(
NSEvent
*
)
o_event
-
(
void
)
mouseMoved
:(
NSEvent
*
)
o_event
{
{
vout_thread_t
*
p_vout
=
getVout
();
vout_thread_t
*
p_vout
=
getVout
();
if
(
p_vout
)
if
(
p_vout
)
{
{
NSPoint
ml
;
NSPoint
ml
;
NSRect
s_rect
;
NSRect
s_rect
;
BOOL
b_inside
;
BOOL
b_inside
;
s_rect
=
[
o_view
bounds
];
s_rect
=
[
self
bounds
];
ml
=
[
o_view
convertPoint
:
[
o_event
locationInWindow
]
fromView
:
nil
];
ml
=
[
self
convertPoint
:
[
o_event
locationInWindow
]
fromView
:
nil
];
b_inside
=
[
o_view
mouse
:
ml
inRect
:
s_rect
];
b_inside
=
[
self
mouse
:
ml
inRect
:
s_rect
];
if
(
b_inside
)
if
(
b_inside
)
{
{
v
ar_SetCoords
(
p_vout
,
"mouse-moved"
,
((
int
)
ml
.
x
),
((
int
)
ml
.
y
)
);
v
out_display_SendEventMouseMoved
(
[[[
self
subviews
]
objectAtIndex
:
0
]
voutDisplay
],
((
int
)
ml
.
x
),
((
int
)
s_rect
.
size
.
height
-
((
int
)
ml
.
y
)
)
);
}
}
vlc_object_release
(
p_vout
);
[[
VLCMain
sharedInstance
]
showFullscreenController
];
[[
VLCMain
sharedInstance
]
showFullscreenController
];
vlc_object_release
(
p_vout
);
}
}
[
super
mouseMoved
:
o_event
];
[
super
mouseMoved
:
o_event
];
...
@@ -405,11 +308,4 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
...
@@ -405,11 +308,4 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
events */
events */
return
NO
;
return
NO
;
}
}
-
(
void
)
renewGState
{
[[
self
window
]
disableScreenUpdatesUntilFlush
];
[
super
renewGState
];
}
@end
@end
modules/video_output/macosx.m
View file @
a3349c78
/*****************************************************************************
/*****************************************************************************
* macosx.m: MacOS X OpenGL provider
* macosx.m: MacOS X OpenGL provider
*****************************************************************************
*****************************************************************************
* Copyright (C) 2001-201
1
the VideoLAN team
* Copyright (C) 2001-201
2
the VideoLAN team
* $Id$
* $Id$
*
*
* Authors: Colin Delacroix <colin@zoy.org>
* Authors: Colin Delacroix <colin@zoy.org>
...
@@ -98,6 +98,7 @@ vlc_module_end ()
...
@@ -98,6 +98,7 @@ vlc_module_end ()
BOOL
_hasPendingReshape
;
BOOL
_hasPendingReshape
;
}
}
-
(
void
)
setVoutDisplay
:(
vout_display_t
*
)
vd
;
-
(
void
)
setVoutDisplay
:(
vout_display_t
*
)
vd
;
-
(
vout_display_t
*
)
voutDisplay
;
-
(
void
)
setVoutFlushing
:(
BOOL
)
flushing
;
-
(
void
)
setVoutFlushing
:(
BOOL
)
flushing
;
@end
@end
...
@@ -512,6 +513,10 @@ static void OpenglSwap(vlc_gl_t *gl)
...
@@ -512,6 +513,10 @@ static void OpenglSwap(vlc_gl_t *gl)
}
}
}
}
-
(
vout_display_t
*
)
voutDisplay
{
return
vd
;
}
/**
/**
* Gets called when the vout will aquire the lock and flush.
* Gets called when the vout will aquire the lock and flush.
...
...
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