shell: position input panel layer above fullscreen layer

When a client calls the input panel (weston-keyboard e.g.)
and then goes fullscreen, the panel will not be hidden
anymore.

Signed-off-by: Manuel Bachmann <manuel.bachmann@open.eurogiciel.org>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 97e8b1e..b4cd93c 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -72,9 +72,9 @@
  * in the following order (top-most first):
  *  • Lock layer (only ever displayed on its own)
  *  • Cursor layer
+ *  • Input panel layer
  *  • Fullscreen layer
  *  • Panel layer
- *  • Input panel layer
  *  • Workspace layers
  *  • Background layer
  *
@@ -3886,18 +3886,19 @@
 	terminate_screensaver(shell);
 
 	wl_list_remove(&shell->lock_layer.link);
-	wl_list_insert(&shell->compositor->cursor_layer.link,
-		       &shell->fullscreen_layer.link);
-	wl_list_insert(&shell->fullscreen_layer.link,
-		       &shell->panel_layer.link);
 	if (shell->showing_input_panels) {
-		wl_list_insert(&shell->panel_layer.link,
+		wl_list_insert(&shell->compositor->cursor_layer.link,
 			       &shell->input_panel_layer.link);
 		wl_list_insert(&shell->input_panel_layer.link,
-			       &ws->layer.link);
+			       &shell->fullscreen_layer.link);
 	} else {
-		wl_list_insert(&shell->panel_layer.link, &ws->layer.link);
+		wl_list_insert(&shell->compositor->cursor_layer.link,
+			       &shell->fullscreen_layer.link);
 	}
+	wl_list_insert(&shell->fullscreen_layer.link,
+		       &shell->panel_layer.link);
+	wl_list_insert(&shell->panel_layer.link,
+		       &ws->layer.link),
 
 	restore_focus_state(shell, get_current_workspace(shell));