PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp
Viewing File: /usr/share/emacs/24.3/lisp/x-dnd.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 13:00:14 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/x-dnd.el ;;; in Emacs version 24.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313& \210\302\314\315\316\306\307\310\317\312\313& \210\302\320\321\322\306\307\310\323\312\313& \207" [require dnd custom-declare-variable x-dnd-test-function 'x-dnd-default-test-function "The function drag and drop uses to determine if to accept or reject a drop.\nThe function takes three arguments, WINDOW, ACTION and TYPES.\nWINDOW is where the mouse is when the function is called. WINDOW may be a\nframe if the mouse isn't over a real window (i.e. menu bar, tool bar or\nscroll bar). ACTION is the suggested action from the drag and drop source,\none of the symbols move, copy, link or ask. TYPES is a list of available\ntypes for the drop.\n\nThe function shall return nil to reject the drop or a cons with two values,\nthe wanted action as car and the wanted type as cdr. The wanted action\ncan be copy, move, link, ask or private.\nThe default value for this variable is `x-dnd-default-test-function'." :version "22.1" :type symbol :group x x-dnd-types-alist `((,(purecopy "text/uri-list") . x-dnd-handle-uri-list) (,(purecopy "text/x-moz-url") . x-dnd-handle-moz-url) (,(purecopy "_NETSCAPE_URL") . x-dnd-handle-uri-list) (,(purecopy "FILE_NAME") . x-dnd-handle-file-name) (,(purecopy "UTF8_STRING") . x-dnd-insert-utf8-text) (,(purecopy "text/plain;charset=UTF-8") . x-dnd-insert-utf8-text) (,(purecopy "text/plain;charset=utf-8") . x-dnd-insert-utf8-text) (,(purecopy "text/unicode") . x-dnd-insert-utf16-text) (,(purecopy "text/plain") . dnd-insert-text) (,(purecopy "COMPOUND_TEXT") . x-dnd-insert-ctext) (,(purecopy "STRING") . dnd-insert-text) (,(purecopy "TEXT") . dnd-insert-text)) "Which function to call to handle a drop of that type.\nIf the type for the drop is not present, or the function is nil,\nthe drop is rejected. The function takes three arguments, WINDOW, ACTION\nand DATA. WINDOW is where the drop occurred, ACTION is the action for\nthis drop (copy, move, link, private or ask) as determined by a previous\ncall to `x-dnd-test-function'. DATA is the drop data.\nThe function shall return the action used (copy, move, link or private)\nif drop is successful, nil if not." alist x-dnd-known-types (mapcar 'purecopy '("text/uri-list" "text/x-moz-url" "_NETSCAPE_URL" "FILE_NAME" "UTF8_STRING" "text/plain;charset=UTF-8" "text/plain;charset=utf-8" "text/unicode" "text/plain" "COMPOUND_TEXT" "STRING" "TEXT")) "The types accepted by default for dropped data.\nThe types are chosen in the order they appear in the list." (repeat string)] 10) #@413 The current state for a drop. This is an alist with one entry for each display. The value for each display is a vector that contains the state for drag and drop for that display. Elements in the vector are: Last buffer drag was in, last window drag was in, types available for drop, the action suggested by the source, the type we want for the drop, the action we want for the drop, any protocol specific data. (defvar x-dnd-current-state nil (#$ . 3088)) (defvar x-dnd-empty-state [nil nil nil nil nil nil nil]) #@69 Setup drag and drop for FRAME (i.e. create appropriate properties). (defalias 'x-dnd-init-frame #[(&optional frame) "\301!\302=\205-\303\304\"\210\303\305\"\210\303\306\"\210\303\307\"\210\303\310\"\210\303\311\"\210\312!\210\313!\207" [frame window-system x x-register-dnd-atom "DndProtocol" "_MOTIF_DRAG_AND_DROP_MESSAGE" "XdndEnter" "XdndPosition" "XdndLeave" "XdndDrop" x-dnd-init-xdnd-for-frame x-dnd-init-motif-for-frame] 3 (#$ . 3608)]) #@66 Return the entry in `x-dnd-current-state' for a frame or window. (defalias 'x-dnd-get-state-cons-for-frame #[(frame-or-window) "\305!\203\n\202 \306!\307 \302\"\310\n \"\204\"\n\311\f!B B\310\n \"*\207" [frame-or-window frame display x-dnd-current-state x-dnd-empty-state framep window-frame frame-parameter assoc copy-sequence] 3 (#$ . 4068)]) #@66 Return the state in `x-dnd-current-state' for a frame or window. (defalias 'x-dnd-get-state-for-frame #[(frame-or-window) "\301!A\207" [frame-or-window x-dnd-get-state-cons-for-frame] 2 (#$ . 4428)]) #@387 The default test function for drag and drop. WINDOW is where the mouse is when this function is called. It may be a frame if the mouse is over the menu bar, scroll bar or tool bar. ACTION is the suggested action from the source, and TYPES are the types the drop data can have. This function only accepts drops with types in `x-dnd-known-types'. It always returns the action private. (defalias 'x-dnd-default-test-function #[(_window _action types) "\302!\211\205 \303 B)\207" [types type x-dnd-choose-type private] 3 (#$ . 4636)]) #@132 Return the type we want the DND data to be in for the current drop. FRAME-OR-WINDOW is the frame or window that the mouse is over. (defalias 'x-dnd-current-type #[(frame-or-window) "\301!\302H\207" [frame-or-window x-dnd-get-state-for-frame 4] 2 (#$ . 5180)]) #@100 Remove all state for the last drop. FRAME-OR-WINDOW is the frame or window that the mouse is over. (defalias 'x-dnd-forget-drop #[(frame-or-window) "\302!\303 !\241\207" [frame-or-window x-dnd-empty-state x-dnd-get-state-cons-for-frame copy-sequence] 3 (#$ . 5448)]) #@235 Call `x-dnd-test-function' if something has changed. WINDOW is the window the mouse is over. ACTION is the suggested action from the source. If nothing has changed, return the last action and type we got from `x-dnd-test-function'. (defalias 'x-dnd-maybe-call-test-function #[(window action) "\306!\205 \307!\310!\211 \311H\232\203& \312H\232\203& \313H\232\204Kr\n\203.\nq\210\f \314H#\315 A\"A\316 \205H #+*\310!\211\317H \320H)B\207" [window current-state buffer action x-dnd-test-function action-type window-live-p window-buffer x-dnd-get-state-for-frame 0 1 3 2 assoc x-dnd-save-state 5 4 x-dnd-types-alist handler] 6 (#$ . 5723)]) #@319 Save the state of the current drag and drop. WINDOW is the window the mouse is over. ACTION is the action suggested by the source. ACTION-TYPE is the result of calling `x-dnd-test-function'. If given, TYPES are the types for the drop data that the source supports. EXTRA-DATA is data needed for a specific protocol. (defalias 'x-dnd-save-state #[(window action action-type &optional types extra-data) "\306!\211\307\n@I\210 \310\nAI\210 \311 I\210\f\203 \312\fI\210 \203' \313 I\210 \314I\210 \315\316!\2057\317!I\210\320! \241)\207" [window current-state action-type action types extra-data x-dnd-get-state-for-frame 5 4 3 2 6 1 0 window-live-p window-buffer x-dnd-get-state-cons-for-frame] 5 (#$ . 6395)]) #@331 Handle one item of type text/x-moz-url. WINDOW is the window where the drop happened. ACTION is ignored. DATA is the moz-url, which is formatted as two strings separated by \r\n. The first string is the URL, the second string is the title of that URL. DATA is encoded in utf-16. Decode the URL and call `x-dnd-handle-uri-list'. (defalias 'x-dnd-handle-moz-url #[(window action data) "\306 \307=\203 \310\202\f\311\312 \"\313\n\314\315#\211@\316 \f#,\207" [coding data string strings url window byteorder 66 utf-16be utf-16le decode-coding-string split-string "[ \n]" t x-dnd-handle-uri-list action] 5 (#$ . 7122)]) #@123 Decode the UTF-8 text and insert it at point. TEXT is the text as a string, WINDOW is the window where the drop happened. (defalias 'x-dnd-insert-utf8-text #[(window action text) "\303 \304\n\305\"#\207" [window action text dnd-insert-text decode-coding-string utf-8] 6 (#$ . 7755)]) #@124 Decode the UTF-16 text and insert it at point. TEXT is the text as a string, WINDOW is the window where the drop happened. (defalias 'x-dnd-insert-utf16-text #[(window action text) "\304 \305=\203 \306\202\f\307\310 \n\311 \"#)\207" [coding window action text byteorder 66 utf-16be utf-16le dnd-insert-text decode-coding-string] 6 (#$ . 8047)]) #@126 Decode the compound text and insert it at point. TEXT is the text as a string, WINDOW is the window where the drop happened. (defalias 'x-dnd-insert-ctext #[(window action text) "\303 \304\n\305\"#\207" [window action text dnd-insert-text decode-coding-string compound-text-with-extensions] 6 (#$ . 8403)]) #@184 Split an uri-list into separate URIs and call `dnd-handle-one-url'. WINDOW is the window where the drop happened. STRING is the uri-list as a string. The URIs are separated by \r\n. (defalias 'x-dnd-handle-uri-list #[(window action string) "\306\307\310#\311\211\311\211\203*\f@\312  #\211\f\203\"\f)\fA\211\204* *\207" [string retval uri-list bf --dolist-tail-- window split-string "[ \n]" t nil dnd-handle-one-url action did-action] 5 (#$ . 8718)]) #@163 Convert file names to URLs and call `dnd-handle-one-url'. WINDOW is the window where the drop happened. STRING is the file names as a string, separated by nulls. (defalias 'x-dnd-handle-file-name #[(window action string) "\306\307\310#\311\312!\205 \206\n\313\211\313\211\203V@\f\203.\314\f\"\315\316\317\306\320\"\320#P\321#\211\203L*A\211\204* +\207" [string file-name-coding-system default-file-name-coding-system retval coding uri-list split-string "[ \n]" t default-value enable-multibyte-characters nil encode-coding-string "file://" mapconcat url-hexify-string "/" dnd-handle-one-url bf --dolist-tail-- file-uri window action did-action] 7 (#$ . 9194)]) #@290 Choose which type we want to receive for the drop. TYPES are the types the source of the drop offers, a vector of type names as strings or symbols. Select among the types in `x-dnd-known-types' or KNOWN-TYPES if given, and return that type name. If no suitable type is found, return nil. (defalias 'x-dnd-choose-type #[(types &optional known-types) "\206 \211@\f \205\306\307\215\211 \204%\nA\203%\310\f\nA\"\202' ,\207" [known-types x-dnd-known-types known-list first-known-type types types-array done (byte-code "G\306 \nW\203/ H\2119\203\307 !\202  \f\232\203'\310\311 \"\210* T\211\202*\312\207" [types-array i --dotimes-limit-- type typename first-known-type 0 symbol-name throw done nil] 4) x-dnd-choose-type found] 4 (#$ . 9907)]) #@362 Drop one data item onto a frame. EVENT is the client message for the drop, FRAME is the frame the drop occurred on. WINDOW is the window of FRAME where the drop happened. DATA is the data received from the source, and type is the type for DATA, see `x-dnd-types-alist'). Returns the action used (move, copy, link, private) if drop was successful, nil if not. (defalias 'x-dnd-drop-data #[(event frame window data type) "\306 \"\211A\307\f!\211\310H\311!\211@) \205y\312!\203i\313!\204i\314!\204i\204^\311!\3108\206[A@:\203WA@@\202[A@)b\210 #\202y\315\316\f!\210 #)-\207" [type x-dnd-types-alist type-info handler frame state assoc x-dnd-get-state-for-frame 5 event-start window-live-p window-minibuffer-p window-dedicated-p t select-frame action event position w mouse-yank-at-point window data dnd-open-file-other-window] 5 (#$ . 10681)]) #@115 Receive drag and drop events (X client messages). Currently XDND, Motif and old KDE 1.x protocols are recognized. (defalias 'x-dnd-handle-drag-n-drop-event #[(event) "AA@\306!\211@) \307H \310H \311H \312H\f\313\232\2033\314 \f&\202b\f\315\232\203G\316 \f&\202b\fG\317V\205b\f\307\317O\320\232\205b\321 \f&.\207" [event client-message position window message-atom frame event-start 0 1 2 3 "DndProtocol" x-dnd-handle-old-kde "_MOTIF_DRAG_AND_DROP_MESSAGE" x-dnd-handle-motif 4 "Xdnd" x-dnd-handle-xdnd format data] 8 (#$ . 11585) "e"]) #@35 Open the files in a KDE 1.x drop. (defalias 'x-dnd-handle-old-kde #[(_event frame window _message _format _data) "\303\304\305\306\307%\310\n\311\312\313\314 ##)\207" [frame values window x-window-property "DndSelection" nil 0 t x-dnd-handle-uri-list private replace-regexp-in-string "$" ""] 7 (#$ . 12166)]) #@49 Mapping from XDND action types to lisp symbols. (defconst x-dnd-xdnd-to-action '(("XdndActionPrivate" . private) ("XdndActionCopy" . copy) ("XdndActionMove" . move) ("XdndActionLink" . link) ("XdndActionAsk" . ask)) (#$ . 12484)) #@67 Set the XdndAware property for FRAME to indicate that we do XDND. (defalias 'x-dnd-init-xdnd-for-frame #[(frame) "\301\302\303\304\305\306&\207" [frame x-change-window-property "XdndAware" (5) "ATOM" 32 t] 7 (#$ . 12720)]) #@264 Return the width/height to be sent in a XDndStatus message. FRAME is the frame and W is the window where the drop happened. If ACCEPT is nil return 0 (empty rectangle), otherwise if W is a window, return its width/height, otherwise return the frame width/height. (defalias 'x-dnd-get-drop-width-height #[(frame w accept) "\203&\304 !\203\305 !\306\n8\n@Z\307\n8\nA@Z)B\207\310 !\311 !B\207\312\207" [accept w edges frame windowp window-inside-pixel-edges 2 3 frame-pixel-width frame-pixel-height 0] 3 (#$ . 12952)]) #@260 Return the x/y coordinates to be sent in a XDndStatus message. Coordinates are required to be absolute. FRAME is the frame and W is the window where the drop happened. If W is a window, return its absolute coordinates, otherwise return the frame coordinates. (defalias 'x-dnd-get-drop-x-y #[(frame w) "\306\307\"\211:\203 A@\202 \306\310\"\211:\203\" A@\202# \311 !\203?\312 ! \n @\\\f A@\\)B\202B\n\fB,\207" [frame frame-left frame-real-left frame-top frame-real-top w frame-parameter left top windowp window-inside-pixel-edges edges] 4 (#$ . 13480)]) #@71 Return the version byte from the 32 bit FLAGS in an XDndEnter message (defalias 'x-dnd-version-from-flags #[(flags) ":\203 \301@\302\"\207\301\303\"\207" [flags ash -8 -24] 3 (#$ . 14056)]) #@74 Return the nmore-than3 bit from the 32 bit FLAGS in an XDndEnter message (defalias 'x-dnd-more-than-3-from-flags #[(flags) ":\203 \301A\302\"\207\301\302\"\207" [flags logand 1] 3 (#$ . 14256)]) #@272 Receive one XDND event (client message) and send the appropriate reply. EVENT is the client message. FRAME is where the mouse is now. WINDOW is the window within FRAME where the mouse is now. FORMAT is 32 (not used). MESSAGE is the data part of an XClientMessageEvent. (defalias 'x-dnd-handle-xdnd #[(event frame window message _format data) "\306\232\203L \307H\310\n!\311\n! \312H\300\313 \f#\210 \205J\3143\315\211\f\312V\2038\316\3174\320 \315\321&\202I\322\323 \324H!\323 \325H!\323 \326H!#$,\207\327\232\203\266\323 \326H!5 \312H\3303\33156\"A\"7\3327@6\"@\2118\203\2017\203\201\307\202\202\3129\333\3344\335\"!9\33643\"\337439\307=#8\206\243\312\257:\3404 4\341\342:&.\207\343\232\203\301\3443!\207\345\232\203)\3463!\203\323\3473!\210 \312H\3503!\205\347\351\352\353\3503!!\";\315\211<5;\205\370\354\355\356\217\2115\203\307\202\312<\3404 4\357\342\333\3344\335\"!<\211\203\360\202\312E&\210\3443!,\207\361\362 #\207" [message data flags version more-than-3 dnd-source "XdndEnter" 1 x-dnd-version-from-flags x-dnd-more-than-3-from-flags 0 "%s %s" x-dnd-save-state nil x-window-property "XdndTypeList" "AnyPropertyType" t vector x-get-atom-name 2 3 4 "XdndPosition" x-dnd-maybe-call-test-function assoc rassoc string-to-number frame-parameter outer-window-id x-dnd-get-drop-x-y x-dnd-get-drop-width-height x-send-client-message "XdndStatus" 32 "XdndLeave" x-dnd-forget-drop "XdndDrop" windowp select-window x-dnd-current-type x-get-selection-internal XdndSelection intern info (byte-code "\304 \n \305\n!%\207" [event frame window value x-dnd-drop-data x-dnd-current-type] 7) ((error (message "Error: %s" info) nil)) "XdndFinished" "XdndActionPrivate" error "Unknown XDND message %s %s" window frame action x-dnd-xdnd-to-action action-type reply-action accept list-to-send value success] 12 (#$ . 14462)]) #@75 Set _MOTIF_DRAG_RECEIVER_INFO for FRAME to indicate that we do Motif DND. (defalias 'x-dnd-init-motif-for-frame #[(frame) "\301\302\303 \304\305\304\211\211\211\211\211\211\211\211\211\211\211\211\257\302\306\307&\207" [frame x-change-window-property "_MOTIF_DRAG_RECEIVER_INFO" byteorder 0 5 8 t] 18 (#$ . 16362)]) (defalias 'x-dnd-get-motif-value #[(data offset size byteorder) "\304=\203$ \305=\203\306\n TH\307\"\n H\\\207\306\n H\307\"\n TH\\\207\310=\205e \305=\203K\306\n\311 \\H\307\"\n\304 \\H\\\306\n TH\307\"\n H\\B\207\306\n H\307\"\n TH\\\306\n\304 \\H\307\"\n\311 \\H\\B\207" [size byteorder data offset 2 108 ash 8 4 3] 5]) (defalias 'x-dnd-motif-value-to-list #[(value size byteorder) "\304=\203\305\306 \307\"\310\"\305 \310\"D\202X\311=\205X :\203>\305\306 @\307\"\310\"\305 @\310\"\305\306 A\307\"\310\"\305 A\310\"F\202X\305\306 \312\"\310\"\305\306 \313\"\310\"\305\306 \307\"\310\"\305 \310\"F \314=\203e\315\n!\202f\n)\207" [size value bytes byteorder 2 logand lsh -8 255 4 -24 -16 108 reverse] 6]) #@50 Mapping from numbers to Motif DND message types. (defvar x-dnd-motif-message-types '((0 . XmTOP_LEVEL_ENTER) (1 . XmTOP_LEVEL_LEAVE) (2 . XmDRAG_MOTION) (3 . XmDROP_SITE_ENTER) (4 . XmDROP_SITE_LEAVE) (5 . XmDROP_START) (6 . XmDROP_FINISH) (7 . XmDRAG_DROP_FINISH) (8 . XmOPERATION_CHANGED)) (#$ . 17411)) #@49 Mapping from number to operation for Motif DND. (defvar x-dnd-motif-to-action '((1 . move) (2 . copy) (3 . link) (4 . link) (2 . private)) (#$ . 17723)) (defalias 'x-dnd-handle-motif #[(event frame window message-atom _format data) "\306\307H \"A\310H\311 \312\313\211 $\306\314 \315\"7\"A8\n\316=\203b\312\317\320 $9\312\321\320 $:\322:!\211;\205H\323\324;!\325\"<\326=!\210<\205^\327>\330\211<9%,\202$\n\331=\203l\330\202$\n\332=\203\374\333=!?\334\312\320\211 $\320\f#@\334\312\317\313 $\313\f#A\334\312\335\313 $\313\f#B?\336H9?\337H?C\340>8\"D\341D@7\"@E\334E\203\312\342E\343\344#\202\313\343\313\f#F\345\346C\203\333\337\202\334\313\\\fDF@AB%G\347=9=\350\317G&.\n\202$\n\351=\203^\333=!?\334\312\320\211 $\320\f#@?\336H9\340>8\"D\341D@7\"@E\334E\203;\342E\343\344#\202<\343\313\f#F\345\352\fDF@#G\347=9=\350\317G&.\202$\n\353=\203\334\312\317\313 $\313\f#A\334\312\335\313 $\313\f#B\312\321\320 $:\322:!;\312\354\320 $9\340>8\"D\341D@7\"@E\334E\203\263\342E\343\344#\202\264\355\313\f#F\345\356\fDFAB$G\312\320\211 $@\330H\347=9=\350\317G&\210E\205;\205\323\324;!\324\357>!!\"\211I\205\377\360\361\362\217)H\323\324;!H\203\363\202\364@#\210\326=!. \202$\365\366J#-\207" [data x-dnd-motif-message-types message-type source-byteorder my-byteorder source-flags assoc 0 1 byteorder x-dnd-get-motif-value 2 logand 15 XmTOP_LEVEL_ENTER 8 4 12 x-get-atom-name x-get-selection-internal intern TARGETS x-dnd-forget-drop x-dnd-save-state nil XmTOP_LEVEL_LEAVE XmDRAG_MOTION x-dnd-get-state-for-frame x-dnd-motif-value-to-list 10 6 3 x-dnd-maybe-call-test-function rassoc + 48 1792 append 128 x-send-client-message "_MOTIF_DRAG_AND_DROP_MESSAGE" XmOPERATION_CHANGED 136 XmDROP_START 16 560 133 x-dnd-current-type info (byte-code "\304 \n \305\n!%\207" [event frame window value x-dnd-drop-data x-dnd-current-type] 7) ((error (message "Error: %s" info) nil)) XmTRANSFER_SUCCESS XmTRANSFER_FAILURE error "Unknown Motif DND message %s %s" x-dnd-motif-to-action source-action dnd-source selection-atom atom-name types frame window state timestamp x y first-move action-type reply-action reply-flags reply action value message-atom] 8]) (provide 'x-dnd)