fixed: now the launcher is close when coypying the emoji
This commit is contained in:
1 parent
247b9183dd
commit
98e5cca19f
1 file changed
+15
-11
@@ -1,7 +1,7 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
from typing import Generator, List
|
from typing import Generator, List
|
||||||
|
|
||||||
import ijson
|
import ijson
|
||||||
from functools import partial
|
|
||||||
from fabric.utils import remove_handler, get_relative_path
|
from fabric.utils import remove_handler, get_relative_path
|
||||||
from fabric.widgets.box import Box
|
from fabric.widgets.box import Box
|
||||||
from fabric.widgets.button import Button
|
from fabric.widgets.button import Button
|
||||||
@@ -18,23 +18,26 @@ class Emoji(Box):
|
|||||||
visible=False,
|
visible=False,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.launcher = kwargs["launcher"]
|
self.launcher = kwargs["launcher"]
|
||||||
self._arranger_handler = 0
|
self._arranger_handler: int = 0
|
||||||
self.emoji_manager = EmojiManager(self)
|
self.emoji_manager = EmojiManager(self)
|
||||||
self.viewport = None
|
self.viewport = None
|
||||||
|
|
||||||
self.search_entry = Entry(
|
self.search_entry = Entry(
|
||||||
name="search-entry",
|
name="search-entry",
|
||||||
h_expand=True,
|
h_expand=True,
|
||||||
notify_text=self._on_search_input,
|
notify_text=lambda entry, *_: self.handle_search_input(entry.get_text()),
|
||||||
on_activate=self._on_search_input,
|
on_activate=lambda entry, *_: self.handle_search_input(entry.get_text()),
|
||||||
)
|
)
|
||||||
|
|
||||||
self.header_box = Box(
|
self.header_box = Box(
|
||||||
name="header-box",
|
name="header-box",
|
||||||
spacing=10,
|
spacing=10,
|
||||||
orientation="h",
|
orientation="h",
|
||||||
children=[self.search_entry],
|
children=[
|
||||||
|
self.search_entry,
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
self.launcher_box = Box(
|
self.launcher_box = Box(
|
||||||
@@ -46,9 +49,6 @@ class Emoji(Box):
|
|||||||
|
|
||||||
self.add(self.launcher_box)
|
self.add(self.launcher_box)
|
||||||
|
|
||||||
def _on_search_input(self, entry, *args):
|
|
||||||
self.handle_search_input(entry.get_text())
|
|
||||||
|
|
||||||
def open_launcher(self):
|
def open_launcher(self):
|
||||||
if not self.viewport:
|
if not self.viewport:
|
||||||
self.viewport = Box(name="viewport", spacing=4, orientation="v")
|
self.viewport = Box(name="viewport", spacing=4, orientation="v")
|
||||||
@@ -63,11 +63,12 @@ class Emoji(Box):
|
|||||||
|
|
||||||
self.viewport.children = []
|
self.viewport.children = []
|
||||||
self.emoji_manager.arrange_viewport()
|
self.emoji_manager.arrange_viewport()
|
||||||
|
|
||||||
self.viewport.show()
|
self.viewport.show()
|
||||||
self.search_entry.grab_focus()
|
self.search_entry.grab_focus()
|
||||||
|
|
||||||
def close_launcher(self):
|
def close_launcher(self):
|
||||||
self.launcher.close_launcher()
|
self.launcher.close()
|
||||||
|
|
||||||
def handle_search_input(self, text: str):
|
def handle_search_input(self, text: str):
|
||||||
self.emoji_manager.arrange_viewport(text)
|
self.emoji_manager.arrange_viewport(text)
|
||||||
@@ -104,7 +105,7 @@ class EmojiManager:
|
|||||||
name="emoji-item",
|
name="emoji-item",
|
||||||
child=Label(label=emoji[0], h_align="center"),
|
child=Label(label=emoji[0], h_align="center"),
|
||||||
tooltip_text=emoji[1],
|
tooltip_text=emoji[1],
|
||||||
on_clicked=partial(self.copy_emoji, emoji),
|
on_clicked=lambda *_: self.copy_emoji(emoji),
|
||||||
**kwargs,
|
**kwargs,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -112,8 +113,11 @@ class EmojiManager:
|
|||||||
if not self.launcher.viewport:
|
if not self.launcher.viewport:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.launcher._arranger_handler:
|
(
|
||||||
remove_handler(self.launcher._arranger_handler)
|
remove_handler(self.launcher._arranger_handler)
|
||||||
|
if self.launcher._arranger_handler
|
||||||
|
else None
|
||||||
|
)
|
||||||
self.launcher.viewport.children = []
|
self.launcher.viewport.children = []
|
||||||
|
|
||||||
filtered_emojis = self.query_emojis(query)
|
filtered_emojis = self.query_emojis(query)
|
||||||
|
|||||||
Reference in new issue
Block a user