summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2014-01-02 00:45:17 -0800
committerKristian Høgsberg <krh@bitplanet.net>2014-01-02 00:45:19 -0800
commitc30c8a3db5e339e077fbba24c2d8ca1991485dfc (patch)
treeceb8ec6c889ff70d3ce7eb5b2ae1faf8db9d2af7
parent7885890df8be868a12b561858c3feeba9bd7a321 (diff)
shell: Always set input-panel position on initial configure
If we're not currently showing the input panels, we still need to set the panel position so that it's set when we later need to show them. This fixes the initial flicker of the input panel in the wrong position when we first show it.
-rw-r--r--desktop-shell/input-panel.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/desktop-shell/input-panel.c b/desktop-shell/input-panel.c
index d97d0730..32be44ba 100644
--- a/desktop-shell/input-panel.c
+++ b/desktop-shell/input-panel.c
@@ -117,18 +117,10 @@ input_panel_configure(struct weston_surface *surface, int32_t sx, int32_t sy)
struct input_panel_surface *ip_surface = surface->configure_private;
struct desktop_shell *shell = ip_surface->shell;
float x, y;
- uint32_t show_surface = 0;
if (surface->width == 0)
return;
- if (!weston_surface_is_mapped(surface)) {
- if (!shell->showing_input_panels)
- return;
-
- show_surface = 1;
- }
-
fprintf(stderr, "%s panel: %d, output: %p\n", __FUNCTION__, ip_surface->panel, ip_surface->output);
if (ip_surface->panel) {
@@ -141,7 +133,7 @@ input_panel_configure(struct weston_surface *surface, int32_t sx, int32_t sy)
weston_view_set_position(ip_surface->view, x, y);
- if (show_surface) {
+ if (!weston_surface_is_mapped(surface) && shell->showing_input_panels) {
wl_list_insert(&shell->input_panel_layer.view_list,
&ip_surface->view->layer_link);
weston_view_update_transform(ip_surface->view);