@@ -133,18 +133,27 @@ def build(self, session=None):
133133 assert (isinstance (session , Session ))
134134
135135 focus = None
136+
136137 for w , wconf in self .iter_create_windows (session ):
137138 assert (isinstance (w , Window ))
138- for p in self .iter_create_panes (w , wconf ):
139+
140+ focus_pane = None
141+ for p , pconf in self .iter_create_panes (w , wconf ):
139142 assert (isinstance (p , Pane ))
140143 p = p
141144
142145 if 'layout' in wconf :
143146 w .select_layout (wconf ['layout' ])
144147
148+ if 'focus' in pconf and pconf ['focus' ]:
149+ focus_pane = p
150+
145151 if 'focus' in wconf and wconf ['focus' ]:
146152 focus = w
147153
154+ if focus_pane :
155+ focus_pane .select_pane ()
156+
148157 if focus :
149158 focus .select_window ()
150159
@@ -157,7 +166,7 @@ def iter_create_windows(self, s):
157166 Applies ``window_options`` to window.
158167
159168 :param session: :class:`Session` from the config
160- :rtype: :class:`Window`
169+ :rtype: tuple( :class:`Window`, ``wconf``)
161170
162171 """
163172 for i , wconf in enumerate (self .sconf ['windows' ], start = 1 ):
@@ -202,7 +211,7 @@ def iter_create_panes(self, w, wconf):
202211 :type w: :class:`Window`
203212 :param wconf: config section for window
204213 :type wconf: :py:obj:`dict`
205- :rtype: :class:`Pane`
214+ :rtype: tuple( :class:`Pane`, ``pconf``)
206215
207216 """
208217 assert (isinstance (w , Window ))
@@ -233,7 +242,7 @@ def iter_create_panes(self, w, wconf):
233242
234243 w .server ._update_panes ()
235244
236- yield p
245+ yield p , pconf
237246
238247
239248def freeze (session ):
0 commit comments