VOUT_DISPLAY_EVENT_PICTURES_INVALID, /* The buffer are now invalid and need to be changed */
VOUT_DISPLAY_EVENT_FULLSCREEN,
+#if defined(_WIN32) || defined(__OS2__)
VOUT_DISPLAY_EVENT_WINDOW_STATE,
+#endif
VOUT_DISPLAY_EVENT_DISPLAY_SIZE, /* The display size need to change : int i_width, int i_height */
{
vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_FULLSCREEN, is_fullscreen);
}
+#if defined(_WIN32)
static inline void vout_display_SendWindowState(vout_display_t *vd, unsigned state)
{
vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_WINDOW_STATE, state);
}
+#endif
/* The mouse position (State and Moved event) must be expressed against vout_display_t::source unit */
static inline void vout_display_SendEventMouseState(vout_display_t *vd, int x, int y, int button_mask)
{
/* */
vout_display_cfg_t cfg;
- unsigned wm_state_initial;
struct {
unsigned num;
unsigned den;
unsigned num;
unsigned den;
} zoom;
-
+#if defined(_WIN32) || defined(__OS2__)
bool ch_wm_state;
unsigned wm_state;
-
+ unsigned wm_state_initial;
+#endif
bool ch_sar;
struct {
unsigned num;
vlc_mutex_unlock(&osys->lock);
break;
}
-
+#if defined(_WIN32) || defined(__OS2__)
case VOUT_DISPLAY_EVENT_WINDOW_STATE: {
const unsigned state = va_arg(args, unsigned);
vlc_mutex_unlock(&osys->lock);
break;
}
-
+#endif
case VOUT_DISPLAY_EVENT_DISPLAY_SIZE: {
const int width = (int)va_arg(args, int);
const int height = (int)va_arg(args, int);
bool is_fullscreen = osys->is_fullscreen;
osys->ch_fullscreen = false;
+#if defined(_WIN32) || defined(__OS2__)
bool ch_wm_state = osys->ch_wm_state;
unsigned wm_state = osys->wm_state;
osys->ch_wm_state = false;
+#endif
bool ch_display_size = osys->ch_display_size;
int display_width = osys->display_width;
!reset_pictures &&
!osys->ch_display_filled &&
!osys->ch_zoom &&
+#if defined(_WIN32) || defined(__OS2__)
!ch_wm_state &&
+#endif
!osys->ch_sar &&
!osys->ch_crop) {
vout_SendEventZoom(osys->vout, osys->cfg.zoom.num, osys->cfg.zoom.den);
}
+#if defined(_WIN32) || defined(__OS2__)
/* */
if (ch_wm_state) {
if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_WINDOW_STATE, wm_state)) {
/* */
vout_SendEventOnTop(osys->vout, osys->wm_state_initial);
}
+#endif
/* */
if (osys->ch_sar) {
video_format_t source = vd->source;
vout_display_cfg_t *cfg = &osys->cfg;
*cfg = state->cfg;
- osys->wm_state_initial = -1;
osys->sar_initial.num = state->sar.num;
osys->sar_initial.den = state->sar.den;
vout_display_GetDefaultDisplaySize(&cfg->display.width, &cfg->display.height,
&osys->height_saved,
source, &cfg_windowed);
}
+
osys->zoom.num = cfg->zoom.num;
osys->zoom.den = cfg->zoom.den;
+#if defined(_WIN32) || defined(__OS2__)
+ osys->wm_state_initial = VOUT_WINDOW_STATE_NORMAL;
osys->wm_state = state->wm_state;
+ osys->ch_wm_state = true;
+#endif
osys->fit_window = 0;
osys->event.fifo = NULL;
if (osys->sar.num != source->i_sar_num ||
osys->sar.den != source->i_sar_den)
osys->ch_sar = true;
- if (osys->wm_state != osys->wm_state_initial)
- osys->ch_wm_state = true;
return p_display;
}
if (state) {
if (!osys->is_wrapper )
state->cfg = osys->cfg;
+#if defined(_WIN32) || defined(__OS2__)
state->wm_state = osys->wm_state;
+#endif
state->sar.num = osys->sar_initial.num;
state->sar.den = osys->sar_initial.den;
}
if (window != NULL)
vout_window_SetState(window, state);
- else
+#if defined(_WIN32) || defined(__OS2__)
+ else /* FIXME: remove this event */
if (vout->p->display.vd != NULL)
- /* FIXME: remove this event, fix MSW and OS/2 window providers */
vout_display_SendEvent(vout->p->display.vd,
VOUT_DISPLAY_EVENT_WINDOW_STATE, state);
+#endif
}
static void ThreadChangeDisplayFilled(vout_thread_t *vout, bool is_filled)
var_Create(vout, "video-wallpaper", VLC_VAR_BOOL|VLC_VAR_DOINHERIT);
VoutGetDisplayCfg(vout, &state_default.cfg, vout->p->display.title);
+#if defined(_WIN32) || defined(__OS2__)
bool below = var_InheritBool(vout, "video-wallpaper");
bool above = var_CreateGetBool(vout, "video-on-top");
state_default.wm_state = below ? VOUT_WINDOW_STATE_BELOW
: above ? VOUT_WINDOW_STATE_ABOVE
: VOUT_WINDOW_STATE_NORMAL;
+#endif
state_default.sar.num = 0;
state_default.sar.den = 0;