From 2f504658a3b14779de98b92fd85d081f58005631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A9sir=C3=A9=20Werner=20Menrath?= Date: Sat, 9 Aug 2025 00:40:45 +0200 Subject: [PATCH] commit 79 --- .../custom_file_dialog.cpython-312.pyc | Bin 105231 -> 105432 bytes custom_file_dialog.py | 10 +++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/__pycache__/custom_file_dialog.cpython-312.pyc b/__pycache__/custom_file_dialog.cpython-312.pyc index 20536c657ba0511349f65534731fb1fb78f6718c..fd9f668895bfed50f7d760a680ceaedb680ce1ad 100644 GIT binary patch delta 2850 zcmZuy3s6+o8NT1$-MjBy*az!^vVbK@iW;M_YEjA5CPuBsXX^w-;4T5dh1^}x;N1v5 z2A0~29`zVIt;U&D8?28~bM0iTT5Tq=KCm?!ZM3n~cGSi|P$xd=Ig9JFcjkU`&iUW3 zb5?#ReXdE4zu4^-fqfsS>&p7}+2xpbfgJBP+lJ`{p;2fwHJTeO1z0))h&_t`_eoDwsU_b(pKjG0uZVkW=B@+z32UOcxVdMdG;p!8n6*iZLk5nDkj^VO6MbepO94Sh%1p7_2<&EU5}bipoPl zrLa^fnjci&V!UAkgN%&&`g*0Fi^iB}T^>y~Bb9ir^utDycZC@C2R=)h()QOYhjoL# z=3HyJdz@8i=CFoA*vbfVGkU)K{QMquuhU6Eq^z^TOs-sW7*4aq+-bXa%?86w$zq;L z93AVegb`D`Urn9e4QVpt9QNZlu zZ9zr>b0TVtn%3sydD4Emw<~InBq#L9qH0!+Of= zeV5l~Rc*3SHp#|q=GF)KV!iAlgV%V-xh}iTsp`mAU448mrke%GKTeO@TM!zfCX>wT zlkHB~mY_x5N=`!+|bj-=fPkVDsV;Ub;aeF3MOoZysQvU{87p+8>LJ8uNJ zFw0Fw-bf9wNE3YAn(9%#rMj`g>~$=%6g7pscf;%Nr6!evjV5IOGV^2Hoa*x@sjgBn zPEC7?dg6x9myqo96piUkOIIJs2A-umGuQw>%0%23XXdkKy|W%aTd`g*s7_U1(Vumh zCq{NAdlz#%k7;5#eb_iDtSVw1%Qb5&);>`i+v~V&SZonjl&DrlWz!zDvfaEVc5g8| zQcNg}SBisbpC;t=os=V9jk}g=Iw{xiYAbV|O;eN2>1nN#os7Vn9bezPk%U+ZNudg3gvanq0kKJmR_l z?__jHf;Wv$ST$jjW2fV!XUylG)cDS}HFVN5>apEto>3isCfm`QywN?;SdO7)e@A88 z_U5$SZFz9PP;H|JHw`#U*QH`R=4d}mLyaB>X+|3S zwm4fjSQ#vdRBK-buuBXa=L&-i9^7~An(Dcr4zaVkY|^m8Ll0#k8By(27A}iu)b?j% zvJON`%7H_ldhGwm{^^nI!~slpqc&#%LLzo(M+c!xf~Fl9hH{58?LEw^BIvUeOoQq$dbYLTlwop-RVR20)QWXkc)h^~EB%xEA z_A0&>k)-`#JT?FxdVT_~B9$JVh%HFhlpkS+0axiKQ}G*QYRWWB6fu$Rn}Iha8!Ln2 zpt&QfEPr})8@>RGOY`vQ=5Ej_waBFBmayF4s)wC5lCc4s;Eg-Rd=)Ytyz|`Mhs+tc zL+>v^0C_ZhDaK+HEm?~3Nl(V59H)DiB2{{kN!InJe_X;Ub5xU-Az3G#XR7ORNki06 zhc&`2ijp>=5h)@}T5$}yzyZ3l8Lz;tooYruu-3f)Q|vZK@!t7}{$Ukld_mJ!V>tTI zAFoD64`n8eu0|c}+;3OoAG*c+c(Thm9OS@9SBY>4ap2RaoZ+yM#i{TcM)?T4(mLX~kClsTF4BkwnsvhbF+wK6=Q?{&~fzcoGUfro+dx zG}u|r)z@=O+Q*cP);Nv+X!L~k}V7le$%FD zYlY1m(r{E#g5U4<*jExQu|Ly|zv^(_NP)RuwcEI@Rai zXQh=Ov-h-l>&;x4*szS{9?hUI2zkfGwnZMrS2)R&Vh;nXH9q6jN-`~S(+LAfI=#Z#KR zLw-dfL%zzTHhIBhO2wIw7ON7Eya12YnMtN`SAruAg`#4nm`8Upce9^${(HXDHFP+h z+LXl(8oB%x6Qv*RwX5+oJuT*8hsLM#@m|>2s@{jas%{CJ_o;ga*^0Y$H-`#ehHlp# zVN2K=w(PU*H4kJ*jq7Gb+kC92*QvO4d23&8rdv-PiYV0alr}_ddYYEa52^^T8GVzS zu5ikbN!-KQ`trPP-4k~1a}70k+^c)}94~zAO>qZkC>^yKCg6MfQU% zvUBcv$bFE$VAy>g^6t0TyvQW!E?ucFpvwCa?2y~PM%dn$1(9>F2Li;d+)T7mhfpWP z9kfrLjmd5D=CQh+v`&)SY4^Qv?Mf()IU!XJltg$)nJX0rXBEm<zSNIW_QsuM2=PDov5alJ zd)H)j&jw3;y~x!s!9N>4sY1}>+ddLAEL8~EGJC?ED{uGG7)%I`_?k zhqsP^537w`BXCv5dLuCkvlYB#{Iw7+Q{W7l$3%lCADw{*=eW$>^Wf*6aqy`-#g%UH z13}anTgO3>vDerULa&MrqjeJMl$7%#;w%9dWPWodyxdcQhj7*?F2Qv?K>dSK6yTgu zUyApDi^lk=m?xWrm*gwQ+soiVx3RwrQ5F9(avsMG87W4}lV}Ih_**mZ4+J=yiMNnt zl+41@W?bW2=3)(l#dWN3wSLS1`>Y$fTbMpTAn1Uw_lGn<`DJ1K%Evll| zI!Z5imo*w$nOtd?#5KMmI%3q81Dpg0NOAGA6-ZC3)*@9+bc_zvHANa`8GS#+etDc< zL`ha~4Ru+UrMhu>v?-!#0g`{ml}ET5g$2eJ6$r`1Yknn0nUKq8Rig&0cxN?sT5^TQ z;R;_|jp=CSuZ8iNJhWZIw?v4-JbomC=c)43YLKsBGq0^fg*uWBHW#s}e;UcJ*TIPv z<8~da3JSQn0dL|(V_ySW;4C1sLX-AmF)szYv=Ki5RD6i3#q#X z|7Icnn-+}ZQ&&@4zivFyjNhrIVzT5ftUz(`L~(Gc$Z07ZEVK^%cSX!DYvYn|<t_%px4 zCp4bp+c6wJ=TEicjeJEM{RIW@ay-$nv{7sNk)}0j+Grv6h@9F49OJn=k%0z2aVM&s VRRN^8Y5ch@&-F`H{LP)1@IMLA&$Ivl diff --git a/custom_file_dialog.py b/custom_file_dialog.py index 2781672..70c3299 100644 --- a/custom_file_dialog.py +++ b/custom_file_dialog.py @@ -911,7 +911,7 @@ class CustomFileDialog(tk.Toplevel): self.icon_canvas.yview_scroll(delta, "units") # Check if scrolled to the bottom and if there are more items to load if self.currently_loaded_count < len(self.all_items) and self.icon_canvas.yview()[1] > 0.9: - self._load_more_items_icon_view(container_frame) + self._load_more_items_icon_view(container_frame, _on_mouse_wheel) for widget in [self.icon_canvas, container_frame]: widget.bind("", _on_mouse_wheel) @@ -925,7 +925,7 @@ class CustomFileDialog(tk.Toplevel): return widget_to_focus = self._load_more_items_icon_view( - container_frame, item_to_rename, item_to_select) + container_frame, _on_mouse_wheel, item_to_rename, item_to_select) if widget_to_focus: def scroll_to_widget(): @@ -944,7 +944,7 @@ class CustomFileDialog(tk.Toplevel): self.after(100, scroll_to_widget) - def _load_more_items_icon_view(self, container, item_to_rename=None, item_to_select=None): + def _load_more_items_icon_view(self, container, scroll_handler, item_to_rename=None, item_to_select=None): start_index = self.currently_loaded_count end_index = min(len(self.all_items), start_index + self.items_to_load_per_batch) @@ -999,6 +999,10 @@ class CustomFileDialog(tk.Toplevel): p=path: self._show_context_menu(e, p)) widget.bind("", lambda e, p=path, f=item_frame: self.on_rename_request(e, p, f)) + # Bind mouse wheel scrolling to all widgets inside the item + widget.bind("", scroll_handler) + widget.bind("", scroll_handler) + widget.bind("", scroll_handler) if name == item_to_select: self.on_item_select(path, item_frame)