- switch (message->what) {
- case INTERFACE_CREATED: {
- BWindow* interfaceWindow;
- if (message->FindPointer("window", (void**)&interfaceWindow) == B_OK) {
- fInterfaceWindow = interfaceWindow;
- if (fRefsMessage) {
- fInterfaceWindow->PostMessage(fRefsMessage);
- delete fRefsMessage;
- fRefsMessage = NULL;
- }
- }
- break;
- }
- default:
- BApplication::MessageReceived(message);
- }
+ switch (message->what) {
+ case INTERFACE_CREATED: {
+ BWindow* interfaceWindow;
+ if (message->FindPointer("window", (void**)&interfaceWindow) == B_OK) {
+ fInterfaceWindow = interfaceWindow;
+ if (fRefsMessage) {
+ fInterfaceWindow->PostMessage(fRefsMessage);
+ delete fRefsMessage;
+ fRefsMessage = NULL;
+ }
+ }
+ break;
+ }
+
+ case REALLY_QUIT:
+ fReadyToQuit = true;
+ PostMessage( B_QUIT_REQUESTED );
+ break;
+
+ default:
+ BApplication::MessageReceived(message);
+ }
+}
+
+bool VlcApplication::QuitRequested()
+{
+ if( !fReadyToQuit )
+ {
+ libvlc_Quit( p_this->p_libvlc );
+ return false;
+ }
+
+ BApplication::QuitRequested();
+ return true;