diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
index d291bf2..3f32a77 100644
--- a/ext/wayland/gstwaylandsink.c
+++ b/ext/wayland/gstwaylandsink.c
@@ -68,6 +68,8 @@
 enum
 {
   PROP_0,
+  PROP_WINDOW_WIDTH,
+  PROP_WINDOW_HEIGHT,
   PROP_DISPLAY,
   PROP_ALPHA
 };
@@ -207,6 +209,16 @@
   gstvideosink_class->show_frame =
       GST_DEBUG_FUNCPTR (gst_wayland_sink_show_frame);
 
+  g_object_class_install_property (gobject_class, PROP_WINDOW_WIDTH,
+      g_param_spec_int ("window-width", "Wayland sink window width", "Wayland "
+          "sink preferred window width in pixel",
+          -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_WINDOW_HEIGHT,
+      g_param_spec_int ("window-height", "Wayland sink window height", "Wayland "
+          "sink preferred window height in pixel",
+          -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   g_object_class_install_property (gobject_class, PROP_DISPLAY,
       g_param_spec_string ("display", "Wayland Display name", "Wayland "
           "display name to connect to, if not supplied via the GstContext",
@@ -222,6 +234,8 @@
 gst_wayland_sink_init (GstWaylandSink * sink)
 {
   sink->alpha = 0.0f;
+  sink->preferred_width = -1;
+  sink->preferred_height = -1;
   g_mutex_init (&sink->display_lock);
   g_mutex_init (&sink->render_lock);
   g_cond_init (&sink->redraw_wait);
@@ -241,6 +255,12 @@
       g_value_set_string (value, sink->display_name);
       GST_OBJECT_UNLOCK (sink);
       break;
+    case PROP_WINDOW_WIDTH:
+      g_value_set_int (value, sink->preferred_width);
+      break;
+    case PROP_WINDOW_HEIGHT:
+      g_value_set_int (value, sink->preferred_height);
+      break;
     case PROP_ALPHA:
       g_value_set_float (value, sink->alpha);
       break;
@@ -262,6 +282,12 @@
       sink->display_name = g_value_dup_string (value);
       GST_OBJECT_UNLOCK (sink);
       break;
+    case PROP_WINDOW_WIDTH:
+      sink->preferred_width = g_value_get_int (value);
+      break;
+    case PROP_WINDOW_HEIGHT:
+      sink->preferred_height = g_value_get_int (value);
+      break;
     case PROP_ALPHA:
       sink->alpha = g_value_get_float (value);
       break;
@@ -378,6 +404,8 @@
     case GST_STATE_CHANGE_NULL_TO_READY:
       if (!gst_wayland_sink_find_display (sink))
         return GST_STATE_CHANGE_FAILURE;
+      sink->display->preferred_width = sink->preferred_width;
+      sink->display->preferred_height = sink->preferred_height;
       break;
     default:
       break;
diff --git a/ext/wayland/gstwaylandsink.h b/ext/wayland/gstwaylandsink.h
index dd6bcec..d675348 100644
--- a/ext/wayland/gstwaylandsink.h
+++ b/ext/wayland/gstwaylandsink.h
@@ -64,6 +64,9 @@
   gboolean video_info_changed;
   GstVideoInfo video_info;
 
+  /* preferred window resolution */
+  gint preferred_width, preferred_height;
+
   gchar *display_name;
 
   gboolean redraw_pending;
diff --git a/ext/wayland/wldisplay.c b/ext/wayland/wldisplay.c
index 1ab61f3..9b56922 100644
--- a/ext/wayland/wldisplay.c
+++ b/ext/wayland/wldisplay.c
@@ -51,6 +51,8 @@
   self->buffers = g_hash_table_new (g_direct_hash, g_direct_equal);
   self->width = -1;
   self->height = -1;
+  self->preferred_width = -1;
+  self->preferred_height = -1;
   g_mutex_init (&self->buffers_mutex);
 }
 
diff --git a/ext/wayland/wldisplay.h b/ext/wayland/wldisplay.h
index 031411e..45ef293 100644
--- a/ext/wayland/wldisplay.h
+++ b/ext/wayland/wldisplay.h
@@ -66,6 +66,9 @@
   /* real display resolution */
   gint width, height;
 
+  /* preferred window resolution */
+  gint preferred_width, preferred_height;
+
   /* private */
   gboolean own_display;
   GThread *thread;
diff --git a/ext/wayland/wlutils.c b/ext/wayland/wlutils.c
index fb306b8..a4d4399 100644
--- a/ext/wayland/wlutils.c
+++ b/ext/wayland/wlutils.c
@@ -37,9 +37,6 @@
 
 #define WESTON_INI "/etc/xdg/weston/weston.ini"
 
-/* FIXME: try to get from wayland server */
-#define PANEL_HEIGH 32
-
 gboolean
 gst_wl_init_surface_state(GstWlDisplay * display, GstWlWindow * window)
 {
diff --git a/ext/wayland/wlutils.h b/ext/wayland/wlutils.h
index fb94ad8..003912c 100644
--- a/ext/wayland/wlutils.h
+++ b/ext/wayland/wlutils.h
@@ -28,6 +28,9 @@
 
 G_BEGIN_DECLS
 
+/* FIXME: try to get from wayland server */
+#define PANEL_HEIGH 32
+
 gboolean gst_wl_init_surface_state(GstWlDisplay * display, GstWlWindow * window);
 G_END_DECLS
 
diff --git a/ext/wayland/wlwindow.c b/ext/wayland/wlwindow.c
index c42c330..c49bfd4 100644
--- a/ext/wayland/wlwindow.c
+++ b/ext/wayland/wlwindow.c
@@ -166,7 +166,7 @@
 
   if (!gst_wl_init_surface_state(display, window)) {
     window->fullscreen_width = display->width;
-    window->fullscreen_height = display->height;
+    window->fullscreen_height = display->height - PANEL_HEIGH;
     window->scale = 1;
     GST_WARNING ("init surface_state fail, fallback to scale=%d fullscreen (%dx%d)",
                 window->scale,
@@ -201,7 +201,10 @@
     return NULL;
   }
 
-  if (window->fullscreen_width <= 0) {
+  if (display->preferred_width > 0 && display->preferred_height > 0) {
+    width = display->preferred_width;
+    height = display->preferred_height;
+  } else if (window->fullscreen_width <= 0) {
     /* set the initial size to be the same as the reported video size */
     width =
         gst_util_uint64_scale_int_round (info->width, info->par_n, info->par_d);
