{
if (m_pPlayer->OnAction(action))
return true;
+ // Player ignored action; popup the OSD
+ if ((action.GetID() == ACTION_MOUSE_MOVE && (action.GetAmount(2) || action.GetAmount(3))) // filter "false" mouse move from touch
+ || action.GetID() == ACTION_MOUSE_LEFT_CLICK)
+ CApplicationMessenger::Get().SendAction(CAction(ACTION_TRIGGER_OSD), WINDOW_INVALID, false);
}
// stop : stops playing current audio song
pt.y *= rs.Height() / rd.Height();
pt += CPoint(rs.x1, rs.y1);
if (action.GetID() == ACTION_MOUSE_LEFT_CLICK)
- return pMenus->OnMouseClick(pt);
+ {
+ if (pMenus->OnMouseClick(pt))
+ return true;
+ else
+ {
+ CApplicationMessenger::Get().SendAction(CAction(ACTION_TRIGGER_OSD), WINDOW_INVALID, false); // Trigger the osd
+ return false;
+ }
+ }
return pMenus->OnMouseMove(pt);
}
break;
pt.y *= rs.Height() / rd.Height();
pt += CPoint(rs.x1, rs.y1);
if (action.GetID() == ACTION_MOUSE_LEFT_CLICK)
- return pMenus->OnMouseClick(pt);
+ {
+ if (pMenus->OnMouseClick(pt))
+ return true;
+ else
+ {
+ CApplicationMessenger::Get().SendAction(CAction(ACTION_TRIGGER_OSD), WINDOW_INVALID, false); // Trigger the osd
+ return false;
+ }
+ }
return pMenus->OnMouseMove(pt);
}
break;
#define ACTION_SETTINGS_RESET 241
#define ACTION_SETTINGS_LEVEL_CHANGE 242
+#define ACTION_TRIGGER_OSD 243 // show autoclosing OSD. Can b used in videoFullScreen.xml window id=2005
+
// touch actions
#define ACTION_TOUCH_TAP 401
#define ACTION_TOUCH_TAP_TEN 410
ToggleOSD();
return true;
+ case ACTION_TRIGGER_OSD:
+ TriggerOSD();
+ return true;
+
case ACTION_SHOW_GUI:
{
// switch back to the menu
}
if (event.m_id >= ACTION_GESTURE_NOTIFY && event.m_id <= ACTION_GESTURE_END) // gestures
return EVENT_RESULT_UNHANDLED;
- if (event.m_id != ACTION_MOUSE_MOVE || event.m_offsetX || event.m_offsetY)
- { // some other mouse action has occurred - bring up the OSD
- // if it is not already running
- CGUIDialogVideoOSD *pOSD = (CGUIDialogVideoOSD *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_OSD);
- if (pOSD && !pOSD->IsDialogRunning())
- {
- pOSD->SetAutoClose(3000);
- pOSD->DoModal();
- }
- return EVENT_RESULT_HANDLED;
- }
return EVENT_RESULT_UNHANDLED;
}
pOSD->DoModal();
}
}
+
+void CGUIWindowFullScreen::TriggerOSD()
+{
+ CGUIDialogVideoOSD *pOSD = (CGUIDialogVideoOSD *)g_windowManager.GetWindow(WINDOW_DIALOG_VIDEO_OSD);
+ if (pOSD && !pOSD->IsDialogRunning())
+ {
+ pOSD->SetAutoClose(3000);
+ pOSD->DoModal();
+ }
+}
void SeekChapter(int iChapter);
void FillInTVGroups();
void ToggleOSD();
+ void TriggerOSD();
enum SEEK_TYPE { SEEK_ABSOLUTE, SEEK_RELATIVE };
enum SEEK_DIRECTION { SEEK_FORWARD, SEEK_BACKWARD };