fixed: now the launcher is close when coypying the emoji

This commit is contained in:
sankalp committed 2025-03-04 16:46:59 +05:45
1 parent 247b9183dd
commit 98e5cca19f
1 file changed
+15 -11
+15 -11
View File
@@ -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)