Fix conflicts.
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 25 May 2009 23:16:47 +0000 (01:16 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 25 May 2009 23:16:47 +0000 (01:16 +0200)
extras/package/macosx/Resources/English.lproj/VLM.nib/classes.nib [new file with mode: 0644]
extras/package/macosx/Resources/English.lproj/VLM.nib/info.nib [new file with mode: 0644]
extras/package/macosx/Resources/English.lproj/VLM.nib/keyedobjects.nib [new file with mode: 0644]
modules/gui/macosx/Modules.am
modules/gui/macosx/intf.h
modules/gui/macosx/intf.m
modules/gui/macosx/misc.m
modules/gui/macosx/simple_prefs.m
modules/gui/macosx/vlm.h [new file with mode: 0644]
modules/gui/macosx/vlm.m [new file with mode: 0644]
projects/mozilla/vlcshell.cpp

diff --git a/extras/package/macosx/Resources/English.lproj/VLM.nib/classes.nib b/extras/package/macosx/Resources/English.lproj/VLM.nib/classes.nib
new file mode 100644 (file)
index 0000000..78fdd7b
--- /dev/null
@@ -0,0 +1,72 @@
+{
+    IBClasses =     (
+                {
+            CLASS = FirstResponder;
+            LANGUAGE = ObjC;
+            SUPERCLASS = NSObject;
+        },
+                {
+            CLASS = NSDatePicker;
+            LANGUAGE = ObjC;
+            SUPERCLASS = NSControl;
+        },
+                {
+            ACTIONS =             {
+                bcastButtonAction = id;
+                listDoubleClickAction = id;
+                schedButtonAction = id;
+                vodButtonAction = id;
+            };
+            CLASS = VLCVLMController;
+            LANGUAGE = ObjC;
+            OUTLETS =             {
+                "o_bcast_add_btn" = NSButton;
+                "o_bcast_box" = NSBox;
+                "o_bcast_cancel_btn" = NSButton;
+                "o_bcast_enable_ckb" = NSButton;
+                "o_bcast_input_btn" = NSButton;
+                "o_bcast_input_fld" = NSTextField;
+                "o_bcast_loop_ckb" = NSButton;
+                "o_bcast_name_fld" = NSTextField;
+                "o_bcast_output_btn" = NSButton;
+                "o_bcast_output_fld" = NSTextField;
+                "o_bcast_panel" = NSPanel;
+                "o_sched_add_btn" = id;
+                "o_sched_box" = id;
+                "o_sched_cancel_btn" = id;
+                "o_sched_date_datePicker" = NSDatePicker;
+                "o_sched_date_lbl" = NSTextField;
+                "o_sched_input_btn" = NSButton;
+                "o_sched_input_fld" = NSTextField;
+                "o_sched_input_lbl" = NSTextField;
+                "o_sched_name_fld" = NSTextField;
+                "o_sched_name_lbl" = NSTextField;
+                "o_sched_output_btn" = NSButton;
+                "o_sched_output_fld" = NSTextField;
+                "o_sched_output_lbl" = NSTextField;
+                "o_sched_panel" = NSPanel;
+                "o_sched_repeatDelay_datePicker" = NSDatePicker;
+                "o_sched_repeat_fld" = NSTextField;
+                "o_sched_repeat_lbl" = NSTextField;
+                "o_sched_time_box" = id;
+                "o_vlm_list" = NSTableView;
+                "o_vlm_win" = NSWindow;
+                "o_vod_add_btn" = NSButton;
+                "o_vod_box" = id;
+                "o_vod_cancel_btn" = NSButton;
+                "o_vod_input_btn" = NSButton;
+                "o_vod_input_fld" = NSTextField;
+                "o_vod_input_lbl" = NSTextField;
+                "o_vod_loop_ckb" = NSButton;
+                "o_vod_name_fld" = NSTextField;
+                "o_vod_name_lbl" = NSTextField;
+                "o_vod_output_btn" = NSButton;
+                "o_vod_output_fld" = NSTextField;
+                "o_vod_output_lbl" = NSTextField;
+                "o_vod_panel" = NSPanel;
+            };
+            SUPERCLASS = NSObject;
+        }
+    );
+    IBVersion = 1;
+}
\ No newline at end of file
diff --git a/extras/package/macosx/Resources/English.lproj/VLM.nib/info.nib b/extras/package/macosx/Resources/English.lproj/VLM.nib/info.nib
new file mode 100644 (file)
index 0000000..ea3c540
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IBDocumentLocation</key>
+       <string>609 119 356 240 0 0 1280 778 </string>
+       <key>IBFramework Version</key>
+       <string>489.0</string>
+       <key>IBOpenObjects</key>
+       <array>
+               <integer>5</integer>
+               <integer>106</integer>
+               <integer>65</integer>
+               <integer>30</integer>
+       </array>
+       <key>IBSystem Version</key>
+       <string>9E17</string>
+</dict>
+</plist>
diff --git a/extras/package/macosx/Resources/English.lproj/VLM.nib/keyedobjects.nib b/extras/package/macosx/Resources/English.lproj/VLM.nib/keyedobjects.nib
new file mode 100644 (file)
index 0000000..b078329
Binary files /dev/null and b/extras/package/macosx/Resources/English.lproj/VLM.nib/keyedobjects.nib differ
index 922f456..590f8e6 100644 (file)
@@ -56,5 +56,7 @@ SOURCES_macosx = \
        fspanel.h \
        eyetv.h \
        eyetv.m \
+       vlm.h \
+       vlm.m \
        $(NULL)
 
index 03eccd7..5c56000 100644 (file)
@@ -102,6 +102,7 @@ struct intf_sys_t
     id o_wizard;                /* VLCWizard      */
     id o_extended;              /* VLCExtended    */
     id o_bookmarks;             /* VLCBookmarks   */
+    id o_vlm;                   /* VLCVLMController */
     id o_embedded_list;         /* VLCEmbeddedList*/
     id o_coredialogs;           /* VLCCoreDialogProvider */
     VLCInformation * o_info;                  /* VLCInformation */
@@ -118,6 +119,7 @@ struct intf_sys_t
     BOOL nib_prefs_loaded;      /* preferences nibfile */
     BOOL nib_update_loaded;     /* update nibfile */
     BOOL nib_info_loaded;       /* information panel nibfile */
+    BOOL nib_vlm_loaded;        /* VLM Panel nibfile */
     BOOL nib_coredialogs_loaded; /* CoreDialogs nibfile */
 
     IBOutlet VLCControllerWindow * o_window;                     /* main window */
@@ -193,6 +195,7 @@ struct intf_sys_t
     IBOutlet NSMenuItem * o_mi_open_recent;
     IBOutlet NSMenuItem * o_mi_open_recent_cm;
     IBOutlet NSMenuItem * o_mi_open_wizard;
+    IBOutlet NSMenuItem * o_mi_open_vlm;
 
     IBOutlet NSMenu * o_mu_edit;
     IBOutlet NSMenuItem * o_mi_cut;
@@ -388,6 +391,7 @@ struct intf_sys_t
 - (IBAction)intfOpenCapture:(id)sender;
 
 - (IBAction)showWizard:(id)sender;
+- (IBAction)showVLM:(id)sender;
 - (IBAction)showExtended:(id)sender;
 - (IBAction)showBookmarks:(id)sender;
 
index 725451e..6e4ad9c 100644 (file)
@@ -54,6 +54,7 @@
 #import "AppleRemote.h"
 #import "eyetv.h"
 #import "simple_prefs.h"
+#import "vlm.h"
 
 #import <AddressBook/AddressBook.h>         /* for crashlog send mechanism */
 #import <IOKit/hidsystem/ev_keymap.h>         /* for the media key support */
@@ -323,6 +324,7 @@ static VLCMain *_o_sharedMainInstance = nil;
     o_prefs = nil;
     o_open = [[VLCOpen alloc] init];
     o_wizard = [[VLCWizard alloc] init];
+    o_vlm = [[VLCVLMController alloc] init];
     o_extended = nil;
     o_bookmarks = [[VLCBookmarks alloc] init];
     o_embedded_list = [[VLCEmbeddedList alloc] init];
@@ -1419,6 +1421,11 @@ static unsigned int VLCModifiersToCocoa( unsigned int i_key )
     return nil;
 }
 
+- (id)vlm
+{
+    return o_vlm;
+}
+
 - (id)bookmarks
 {
     if( o_bookmarks )
@@ -2161,6 +2168,14 @@ end:
     }
 }
 
+- (IBAction)showVLM:(id)sender
+{
+    if( !nib_vlm_loaded )
+        nib_vlm_loaded = [NSBundle loadNibNamed:@"VLM" owner: NSApp];
+
+    [o_vlm showVLMWindow];
+}
+
 - (IBAction)showExtended:(id)sender
 {
     if( o_extended == nil )
index fe7b507..4d77a38 100644 (file)
@@ -91,7 +91,7 @@
 
 @implementation NSAnimation (VLCAdditions)
 /* fake class attributes  */
-static NSMapTable *VLCAdditions_userInfo = nil;
+static NSMapTable *VLCAdditions_userInfo = NULL;
 
 + (void)load
 {
@@ -124,7 +124,7 @@ static NSMapTable *VLCAdditions_userInfo = nil;
 
 @implementation NSScreen (VLCAdditions)
 
-static NSMutableArray *blackoutWindows = nil;
+static NSMutableArray *blackoutWindows = NULL;
 
 + (void)load
 {
@@ -132,12 +132,6 @@ static NSMutableArray *blackoutWindows = nil;
     blackoutWindows = [[NSMutableArray alloc] initWithCapacity:1];
 }
 
-- (void)dealloc
-{
-    [blackoutWindows release];
-    [super dealloc];
-}
-
 + (NSScreen *)screenWithDisplayID: (CGDirectDisplayID)displayID
 {
     int i;
index debf9ef..3037924 100644 (file)
@@ -661,11 +661,7 @@ static inline void save_string_list( intf_thread_t * p_intf, id object, const ch
     p_item = config_FindConfig( VLC_OBJECT(p_intf), name );
     p_stringobject = (NSString *)[[object selectedItem] representedObject];
     assert([p_stringobject isKindOfClass:[NSString class]]);
-    if( p_stringobject )
-    {
-        config_PutPsz( p_intf, name, [p_stringobject UTF8String] );
-        [p_stringobject release];
-    }
+    if( p_stringobject ) config_PutPsz( p_intf, name, [p_stringobject UTF8String] );
 }
 
 static inline void save_module_list( intf_thread_t * p_intf, id object, const char * name )
@@ -698,6 +694,7 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch
 {
     char *psz_tmp;
     int i;
+    NSString *p_stringobject;
     
 #define SaveIntList( object, name ) save_int_list( p_intf, object, name )
                     
diff --git a/modules/gui/macosx/vlm.h b/modules/gui/macosx/vlm.h
new file mode 100644 (file)
index 0000000..bbaeba7
--- /dev/null
@@ -0,0 +1,115 @@
+/*****************************************************************************
+ * vlm.h: VLM Configuration panel for Mac OS X
+ *****************************************************************************
+ * Copyright (c) 2008 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne@videolan.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+
+#ifdef HAVE_CONFIG_H
+#   import "config.h"
+#endif
+
+#ifdef ENABLE_VLM
+
+#import <Cocoa/Cocoa.h>
+#import "intf.h"
+
+#import <vlc_vlm.h>
+
+@interface VLCVLMController : NSObject
+{
+    /* broadcast panel */
+    IBOutlet NSButton *o_bcast_add_btn;
+    IBOutlet NSBox *o_bcast_box;
+    IBOutlet NSButton *o_bcast_cancel_btn;
+    IBOutlet NSButton *o_bcast_enable_ckb;
+    IBOutlet NSButton *o_bcast_input_btn;
+    IBOutlet NSTextField *o_bcast_input_fld;
+    IBOutlet NSButton *o_bcast_loop_ckb;
+    IBOutlet NSTextField *o_bcast_name_fld;
+    IBOutlet NSButton *o_bcast_output_btn;
+    IBOutlet NSTextField *o_bcast_output_fld;
+    IBOutlet NSPanel *o_bcast_panel;
+
+    /* schedule panel */
+    IBOutlet id o_sched_add_btn;
+    IBOutlet id o_sched_box;
+    IBOutlet id o_sched_cancel_btn;
+    IBOutlet NSDatePicker *o_sched_date_datePicker;
+    IBOutlet NSTextField *o_sched_date_lbl;
+    IBOutlet NSButton *o_sched_input_btn;
+    IBOutlet NSTextField *o_sched_input_fld;
+    IBOutlet NSTextField *o_sched_input_lbl;
+    IBOutlet NSTextField *o_sched_name_fld;
+    IBOutlet NSTextField *o_sched_name_lbl;
+    IBOutlet NSButton *o_sched_output_btn;
+    IBOutlet NSTextField *o_sched_output_fld;
+    IBOutlet NSTextField *o_sched_output_lbl;
+    IBOutlet NSTextField *o_sched_repeat_fld;
+    IBOutlet NSTextField *o_sched_repeat_lbl;
+    IBOutlet NSDatePicker *o_sched_repeatDelay_datePicker;
+    IBOutlet id o_sched_time_box;
+    IBOutlet NSWindow *o_sched_panel;
+
+    /* VLM Window */
+    IBOutlet NSTableView *o_vlm_list;
+    IBOutlet NSWindow *o_vlm_win;
+
+    /* VOD Panel */
+    IBOutlet NSButton *o_vod_add_btn;
+    IBOutlet id o_vod_box;
+    IBOutlet NSButton *o_vod_cancel_btn;
+    IBOutlet NSButton *o_vod_input_btn;
+    IBOutlet NSTextField *o_vod_input_fld;
+    IBOutlet NSTextField *o_vod_input_lbl;
+    IBOutlet NSButton *o_vod_loop_ckb;
+    IBOutlet NSTextField *o_vod_name_fld;
+    IBOutlet NSTextField *o_vod_name_lbl;
+    IBOutlet NSButton *o_vod_output_btn;
+    IBOutlet NSTextField *o_vod_output_fld;
+    IBOutlet NSTextField *o_vod_output_lbl;
+    IBOutlet NSWindow *o_vod_panel;
+}
++ (VLCVLMController *)sharedInstance;
+
+/* toolbar */
+- (NSToolbarItem *) toolbar: (NSToolbar *)o_toolbar 
+      itemForItemIdentifier: (NSString *)o_itemIdent 
+  willBeInsertedIntoToolbar: (BOOL)b_willBeInserted;
+- (NSArray *)toolbarDefaultItemIdentifiers: (NSToolbar *)toolbar;
+- (NSArray *)toolbarAllowedItemIdentifiers: (NSToolbar *)toolbar;
+
+- (void)showVLMWindow;
+- (void)initStrings;
+
+- (void)addBcast;
+- (void)addVOD;
+- (void)addSched;
+
+- (IBAction)bcastButtonAction:(id)sender;
+- (IBAction)listDoubleClickAction:(id)sender;
+- (IBAction)schedButtonAction:(id)sender;
+- (IBAction)vodButtonAction:(id)sender;
+
+- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
+- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
+@end
+
+#endif
\ No newline at end of file
diff --git a/modules/gui/macosx/vlm.m b/modules/gui/macosx/vlm.m
new file mode 100644 (file)
index 0000000..c66beb0
--- /dev/null
@@ -0,0 +1,184 @@
+/*****************************************************************************
+ * vlm.m: VLM Configuration panel for Mac OS X
+ *****************************************************************************
+ * Copyright (c) 2008 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne@videolan.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+#import "vlm.h"
+
+#ifdef ENABLE_VLM
+
+static NSString * VLCVLMToolbarIdentifier = @"Our VLM Toolbar Identifier";
+static NSString * VLCVODToolbarIdentifier = @"VLM Item";
+static NSString * VLCSchedToolbarIdentifier = @"Sched Item";
+static NSString * VLCBcastToolbarIdentifier = @"Bcast Item";
+
+@implementation VLCVLMController
+
+static VLCVLMController *_o_sharedInstance = nil;
+
++ (VLCVLMController *)sharedInstance
+{
+    return _o_sharedInstance ? _o_sharedInstance : [[self alloc] init];
+}
+
+- (id)init
+{
+    if( _o_sharedInstance )
+        [self dealloc];
+    else
+    {
+        _o_sharedInstance = [super init];
+    }
+
+    return _o_sharedInstance;
+}
+
+- (void)awakeFromNib
+{
+    [self initStrings];
+    
+    /* setup the toolbar */
+    NSToolbar * o_vlm_toolbar = [[[NSToolbar alloc] initWithIdentifier: VLCVLMToolbarIdentifier] autorelease];
+    [o_vlm_toolbar setAllowsUserCustomization: NO];
+    [o_vlm_toolbar setAutosavesConfiguration: NO];
+    [o_vlm_toolbar setDisplayMode: NSToolbarDisplayModeIconAndLabel];
+    [o_vlm_toolbar setSizeMode: NSToolbarSizeModeRegular];
+    [o_vlm_toolbar setDelegate: self];
+    [o_vlm_win setToolbar: o_vlm_toolbar];
+}
+
+#define CreateToolbarItem( o_name, o_desc, o_img, sel ) \
+    o_toolbarItem = create_toolbar_item(o_itemIdent, o_name, o_desc, o_img, self, @selector(sel));
+static inline NSToolbarItem *
+create_toolbar_item( NSString * o_itemIdent, NSString * o_name, NSString * o_desc, NSString * o_img, id target, SEL selector )
+{
+    NSToolbarItem *o_toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: o_itemIdent] autorelease]; \
+
+    [o_toolbarItem setLabel: o_name];
+    [o_toolbarItem setPaletteLabel: o_desc];
+
+    [o_toolbarItem setToolTip: o_desc];
+    [o_toolbarItem setImage: [NSImage imageNamed: o_img]];
+
+    [o_toolbarItem setTarget: target];
+    [o_toolbarItem setAction: selector];
+
+    [o_toolbarItem setEnabled: YES];
+    [o_toolbarItem setAutovalidates: YES];
+
+    return o_toolbarItem;
+}
+
+- (NSToolbarItem *) toolbar: (NSToolbar *)o_vlm_toolbar 
+      itemForItemIdentifier: (NSString *)o_itemIdent 
+  willBeInsertedIntoToolbar: (BOOL)b_willBeInserted
+{
+    NSToolbarItem *o_toolbarItem = nil;
+
+    if( [o_itemIdent isEqual: VLCVODToolbarIdentifier] )
+    {
+        CreateToolbarItem( _NS("Video On Demand"), _NS("Video On Demand"), @"add_vod", addVOD );
+    }
+    else if( [o_itemIdent isEqual: VLCSchedToolbarIdentifier] )
+    {
+        CreateToolbarItem( _NS("Schedule"), _NS("Schedule"), @"add_schedule", addSched );
+    }
+    else if( [o_itemIdent isEqual: VLCBcastToolbarIdentifier] )
+    {
+        CreateToolbarItem( _NS("Broadcast"), _NS("Broadcast"), @"add_broadcast", addBcast );
+    }
+
+    return o_toolbarItem;
+}
+
+- (NSArray *)toolbarDefaultItemIdentifiers: (NSToolbar *)toolbar
+{
+    return [NSArray arrayWithObjects: VLCBcastToolbarIdentifier, VLCSchedToolbarIdentifier, VLCVODToolbarIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil];
+}
+
+- (NSArray *)toolbarAllowedItemIdentifiers: (NSToolbar *)toolbar
+{
+    return [NSArray arrayWithObjects: VLCBcastToolbarIdentifier, VLCSchedToolbarIdentifier, VLCVODToolbarIdentifier, NSToolbarFlexibleSpaceItemIdentifier, nil];
+}
+
+- (void)initStrings
+{
+    /* not implemented */
+}
+
+- (void)showVLMWindow
+{
+    [o_vlm_win makeKeyAndOrderFront: self];
+}
+
+- (void)addBcast
+{
+    [NSApp beginSheet: o_bcast_panel modalForWindow: o_vlm_win
+        modalDelegate: self didEndSelector: nil contextInfo: nil];
+}
+
+- (void)addVOD
+{
+    [NSApp beginSheet: o_vod_panel modalForWindow: o_vlm_win
+        modalDelegate: self didEndSelector: nil contextInfo: nil];
+}
+
+- (void)addSched
+{ 
+    [NSApp beginSheet: o_sched_panel modalForWindow: o_vlm_win
+         modalDelegate: self didEndSelector: nil contextInfo: nil];
+}
+
+- (IBAction)bcastButtonAction:(id)sender
+{
+    [NSApp endSheet: o_bcast_panel];
+    [o_bcast_panel close];
+}
+
+- (IBAction)listDoubleClickAction:(id)sender
+{
+}
+
+- (IBAction)schedButtonAction:(id)sender
+{
+    [NSApp endSheet: o_sched_panel];
+    [o_sched_panel close];
+}
+
+- (IBAction)vodButtonAction:(id)sender
+{
+    [NSApp endSheet: o_vod_panel];
+    [o_vod_panel close];
+}
+
+- (int)numberOfRowsInTableView:(NSTableView *)aTableView
+{
+    return 0;
+}
+
+- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
+{
+    return @"dummy";
+}
+
+@end
+
+#endif
\ No newline at end of file
index 151c615..e0b937b 100644 (file)
@@ -387,12 +387,6 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
     {
         /* check if plugin has a new parent window */
         CGrafPtr drawable = (((NP_Port*) (window->window))->port);
-        if( !curwin.window || drawable != (((NP_Port*) (curwin.window))->port) )
-        {
-            /* set/change parent window */
-            libvlc_video_set_parent(p_vlc, (libvlc_drawable_t)drawable, &ex);
-            libvlc_exception_clear(&ex);
-        }
 
         /* as MacOS X video output is windowless, set viewport */
         libvlc_rectangle_t view, clip;
@@ -422,9 +416,6 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
     else if( curwin.window )
     {
         /* change/set parent */
-        libvlc_video_set_parent(p_vlc, 0, &ex);
-        libvlc_exception_clear(&ex);
-
         curwin.window = NULL;
     }
 #endif /* XP_MACOSX */
@@ -457,10 +448,6 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
             style |= WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
             SetWindowLong((HWND)drawable, GWL_STYLE, style);
 
-            /* change/set parent */
-            libvlc_video_set_parent(p_vlc, (libvlc_drawable_t)drawable, &ex);
-            libvlc_exception_clear(&ex);
-
             /* remember new window */
             p_plugin->setWindow(*window);
 
@@ -476,10 +463,6 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
         SetWindowLong( oldwin, GWL_WNDPROC, (LONG)(p_plugin->getWindowProc()) );
         p_plugin->setWindowProc(NULL);
 
-        /* change/set parent */
-        libvlc_video_set_parent(p_vlc, 0, &ex);
-        libvlc_exception_clear(&ex);
-
         curwin.window = NULL;
     }
 #endif /* XP_WIN */
@@ -529,10 +512,6 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
             XtAddEventHandler( w, ButtonReleaseMask, FALSE,
                                (XtEventHandler)ControlHandler, p_plugin );
 
-            /* set/change parent window */
-            libvlc_video_set_parent( p_vlc, (libvlc_drawable_t) video, &ex );
-            libvlc_exception_clear(&ex);
-
             /* remember window */
             p_plugin->setWindow( *window );
             p_plugin->setVideoWindow( video );
@@ -553,9 +532,6 @@ NPError NPP_SetWindow( NPP instance, NPWindow* window )
     }
     else if( curwin.window )
     {
-        /* change/set parent */
-        libvlc_video_set_parent(p_vlc, 0, &ex);
-        libvlc_exception_clear(&ex);
         curwin.window = NULL;
     }
 #endif /* XP_UNIX */