Skip to content

Commit 45b5b8e

Browse files
committed
settings: ensure the textinput is not focused when dismiss the popup. closes kivy#314
1 parent 1d6a038 commit 45b5b8e

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

kivy/uix/settings.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,15 @@ def on_panel(self, instance, value):
317317
return
318318
self.bind(on_release=self._create_popup)
319319

320-
def _validate(self, instance):
321-
self.popup.dismiss()
320+
def _dismiss(self, *largs):
321+
if self.textinput:
322+
self.textinput.focus = False
323+
if self.popup:
324+
self.popup.dismiss()
322325
self.popup = None
326+
327+
def _validate(self, instance):
328+
self._dismiss()
323329
value = self.textinput.text.strip()
324330
if value == '':
325331
return
@@ -349,7 +355,7 @@ def _create_popup(self, instance):
349355
btn.bind(on_release=self._validate)
350356
btnlayout.add_widget(btn)
351357
btn = Button(text='Cancel')
352-
btn.bind(on_release=popup.dismiss)
358+
btn.bind(on_release=self._dismiss)
353359
btnlayout.add_widget(btn)
354360
content.add_widget(btnlayout)
355361

@@ -365,13 +371,11 @@ class SettingNumeric(SettingString):
365371
'''
366372

367373
def _validate(self, instance):
368-
self.popup.dismiss()
369-
self.popup = None
374+
self._dismiss()
370375
try:
371-
value = int(self.textinput.text)
376+
self.value = int(self.textinput.text)
372377
except ValueError:
373378
return
374-
self.value = value
375379

376380

377381
class SettingOptions(SettingItem):

0 commit comments

Comments
 (0)