Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions timetagger/app/dialogs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1687,11 +1687,23 @@ def open(self, mode, record, callback=None):
el.innerText = x
self.maindiv.appendChild(el)

# Keep track of composing state (e.g. entering JCK characters) to avoid prematurely submitting on enter (#594)
self._is_composing = False
self._ds_input.addEventListener(
"compositionstart", lambda: self._set_compose_state(True)
)
self._ds_input.addEventListener(
"compositionend", lambda: self._set_compose_state(False)
)

# Almost done. Focus on ds if this looks like desktop; it's anoying on mobile
super().open(callback)
if utils.looks_like_desktop():
self._ds_input.focus()

def _set_compose_state(self, value):
self._is_composing = value

def _autocomp_finished(self):
self._show_tags_from_ds()
self._mark_as_edited()
Expand Down Expand Up @@ -1854,6 +1866,8 @@ def _on_key(self, e):
if self._autocompleter.on_key(e):
e.stopPropagation()
return
elif self._is_composing:
pass
elif key == "enter" or key == "return":
self.submit_soon()
else:
Expand Down Expand Up @@ -2406,10 +2420,22 @@ def open(self, tags, callback=None):

self._records = []

# Keep track of composing state (e.g. entering JCK characters)
self._is_composing = False
self._tagname2.addEventListener(
"compositionstart", lambda: self._set_compose_state(True)
)
self._tagname2.addEventListener(
"compositionend", lambda: self._set_compose_state(False)
)

super().open(callback)
if utils.looks_like_desktop():
self._tagname2.focus()

def _set_compose_state(self, value):
self._is_composing = value

def close(self):
self._records = []
super().close()
Expand All @@ -2428,6 +2454,8 @@ def _on_name2_done(self):

def _on_key2(self, e):
key = e.key.lower()
if self._is_composing:
pass
if key == "enter" or key == "return":
e.stopPropagation()
e.preventDefault()
Expand Down Expand Up @@ -2578,6 +2606,18 @@ def open(self):
if utils.looks_like_desktop():
self._search_input.focus()

# Keep track of composing state (e.g. entering JCK characters)
self._is_composing = False
self._search_input.addEventListener(
"compositionstart", lambda: self._set_compose_state(True)
)
self._search_input.addEventListener(
"compositionend", lambda: self._set_compose_state(False)
)

def _set_compose_state(self, value):
self._is_composing = value

def close(self):
self._autocompleter.close()
self._records = []
Expand Down Expand Up @@ -2654,6 +2694,8 @@ def _on_key(self, e):
if self._autocompleter.on_key(e):
e.stopPropagation()
return
elif self._is_composing:
pass
elif key == "enter" or key == "return":
e.stopPropagation()
e.preventDefault()
Expand Down