@ -136,6 +136,10 @@ struct shell_surface {
uint32_t serial ;
uint32_t serial ;
} popup ;
} popup ;
struct {
int32_t x , y ;
} transient ;
struct {
struct {
enum wl_shell_surface_fullscreen_method type ;
enum wl_shell_surface_fullscreen_method type ;
struct weston_transform transform ; /* matrix from x, y */
struct weston_transform transform ; /* matrix from x, y */
@ -744,8 +748,8 @@ set_surface_type(struct shell_surface *shsurf)
case SHELL_SURFACE_TRANSIENT :
case SHELL_SURFACE_TRANSIENT :
pes = pshsurf - > surface ;
pes = pshsurf - > surface ;
weston_surface_set_position ( surface ,
weston_surface_set_position ( surface ,
pes - > geometry . x + shsurf - > popup . x ,
pes - > geometry . x + shsurf - > transient . x ,
pes - > geometry . y + shsurf - > popup . y ) ;
pes - > geometry . y + shsurf - > transient . y ) ;
break ;
break ;
case SHELL_SURFACE_MAXIMIZED :
case SHELL_SURFACE_MAXIMIZED :
@ -829,8 +833,8 @@ shell_surface_set_transient(struct wl_client *client,
/* assign to parents output */
/* assign to parents output */
shsurf - > parent = parent_resource - > data ;
shsurf - > parent = parent_resource - > data ;
shsurf - > popup . x = x ;
shsurf - > transient . x = x ;
shsurf - > popup . y = y ;
shsurf - > transient . y = y ;
shsurf - > next_type = SHELL_SURFACE_TRANSIENT ;
shsurf - > next_type = SHELL_SURFACE_TRANSIENT ;
}
}