From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: master 2021835326 2/3: Implement `return-frame' for DND on NS Date: Tue, 31 May 2022 21:07:23 +0800 Message-ID: <87y1yh97g4.fsf@yahoo.com> References: <165399160266.27129.5728276928017774382@vcs2.savannah.gnu.org> <20220531100643.37E30C0C1B3@vcs2.savannah.gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38178"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue May 31 15:09:47 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nw1d4-0009oV-IT for ged-emacs-devel@m.gmane-mx.org; Tue, 31 May 2022 15:09:46 +0200 Original-Received: from localhost ([::1]:48092 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nw1d3-0000GU-5j for ged-emacs-devel@m.gmane-mx.org; Tue, 31 May 2022 09:09:45 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56154) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nw1b3-0006Jl-Dj for emacs-devel@gnu.org; Tue, 31 May 2022 09:07:41 -0400 Original-Received: from sonic304-21.consmr.mail.ne1.yahoo.com ([66.163.191.147]:39098) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nw1b0-0006bq-WB for emacs-devel@gnu.org; Tue, 31 May 2022 09:07:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1654002457; bh=DaZApA6FP8Dg7DL7WJlmijmLT3DYpIPNF1B5PaoNu3c=; h=From:To:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=kcolqFCRHyQtjC9Pdq+OxLLqOx+rn+eZnyXq11D9Cc86vPXhSEs1EbmsVZk2uIGdQ9iqpSZ2VpHHXzRgNvRJiK6cREv6FP2mC6VvqaVa7wo7kTL18UT+jQycydsmCyKQWppPCMvIWVsHZMTed9FdyXKJmKRupja7xxaQe7Xe13zlozwsadCH+OsYnVY+twTdpRPvAyeL2TU2Po7icYg7rqdd94YztLncADu5Go6bQ2ErNlL0npk1n/hT70bXufJ65jTTNkv3jU7akVhYHxgXTSTxY2AkkXIGPnwML6engsbJUaMvOzKKNVb4EOU+bNkL6fF28jfwU6ReHhNPHxEcpQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1654002457; bh=FCm3EdyJplklyVmxiu+EtXQt3xO6li8Xn/OjUBGfqum=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=rzNu5C6QLgMWX7HM0Y5Wcuk/AcMaGY23DndOVb0BgepCMW9LKui+lRw+c0qQUmmXEWiZ/Moj1r5o5nL3qvP5rkxFnVCFO4y5nRRi6VlsMeMwIb4sNzjV++StAekKll9WlY7o2YJw/4YA6ppdXtkjBMINGA77GDPOQ6JMSO1Q6eJNBUauLvYdoS7aAAXUfnpWNy+TPaPUPqslOfpsVbzkx0YtHJd6XnngVJZ5MmAMdurhM0hu2+a4FiN1Nswd+04oGFD7L08/q+3u1f1/bQCC24XedxDfju7mnyw0VrZ1QLxjeSh4c67vH57D5h9+FrJLpi2FSVgpC3rnDNAJiPc0FA== X-YMail-OSG: daoFTVYVM1kaVGsk3d9.1fngphWvXdnluuSfGP671tdk.Y90GobiKVFc8bi_hTy ngMx4saW9WT7ULas3GC_Zo_uiFDCcu2w4MqrdscYzmwSFGY4xW94P59XzRTCr3cpQvQKfqwVg9xt M_UoT4KYqqhmUZpXBHLvt.DAVE.InsLPpqWKwgrYFUD5BJImkhdQ5LbJ2h4rtyTXIaIvabGgudGj dqAQsSS2PByeGUI_JOtGJbgFQk4Y5_DOxPW0Xj.G_YiZyfvom.WsnmG_eAU6BUL39YDS3IbBkSRd .DwgZGFneW3Tie9Uh1LgJVIEdm32FFZiW4nFWUyI.sahtcVmqTuKjNR0KxKU73d9zL9K68gVKvsC LdbcDBfOnZVmndtF93.fPIgQCCtRUoCsVC_tpXBe0FW5HimvyYubV9O33LbZFIHfgM8J_tkMSIEj C.Qsli.OYB4Lb2pc1m.ZPdLcXP0DH6KyJCoAp2DXB.9WIZbigCAEYGLvlUnam6HX0up6CAmiaqaR duvgOQxm3gVV5Fdpf9HSYYz.P0zX6q2TAR2KrW7z6w8j6.529wtKFfXPYHOMNEFlFKHK_01nSfcj A6R495Z.6FfnMH4fpfORK7fqRLZUBTY24yZ.hML87xZ843sOEQSYCMRwMUkRRm0wslzljfG7dff1 YYgn1T4M2gypYXQCb55twMTRs9GTYgVnXjxpzhjF8kksNX_y3.kj7cUWwzUPmFPLfmWY8op2PnXi cKnV3bj_ZxkpRAzawKY._j3Lh6ruVgKpB97ggkl5LeIM8DdiS2OCSTLxRlyNOVQpbp5dTuGCmnQ. BKjsIXGSivlh_Fjm15XXyr.NCiX9YCVnpYYwNV1TIe X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ne1.yahoo.com with HTTP; Tue, 31 May 2022 13:07:37 +0000 Original-Received: by hermes--canary-production-sg3-5f7658c994-zbd6m (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 18731ffcb011a7f2451f3b877b767df3; Tue, 31 May 2022 13:07:30 +0000 (UTC) In-Reply-To: <20220531100643.37E30C0C1B3@vcs2.savannah.gnu.org> (Po Lu via Mailing list for Emacs changes's message of "Tue, 31 May 2022 06:06:43 -0400 (EDT)") X-Mailer: WebService/1.1.20225 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.191.147; envelope-from=luangruo@yahoo.com; helo=sonic304-21.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:290401 Archived-At: Po Lu via Mailing list for Emacs changes writes: > +#ifdef NS_IMPL_COCOA > +- (void) draggedImage: (NSImage *) dragged_image > + movedTo: (NSPoint) screen_point > +{ > + NSInteger window_number; > + NSWindow *w; > + > + if (dnd_mode == RETURN_FRAME_NEVER) > + return; > + > + window_number = [NSWindow windowNumberAtPoint: [NSEvent mouseLocation] > + belowWindowWithWindowNumber: 0]; > + w = [NSApp windowWithWindowNumber: window_number]; > + > + if (!w || w != self) > + dnd_mode = RETURN_FRAME_NOW; > + > + if (dnd_mode != RETURN_FRAME_NOW > + || ![[w delegate] isKindOfClass: [EmacsView class]]) > + return; > + > + dnd_return_frame = ((EmacsView *) [w delegate])->emacsframe; > + > + /* FIXME: there must be a better way to leave the event loop. */ > + [NSException raise: @"" > + format: @"Must return DND frame"]; > +} > +#endif This works (and there's nothing in the documentation forbidding it), but prints an ugly warning message to stdout every time the exception is raised. Does anyone know of a better way to stop an NS drag-and-drop operation inside one of the drag source callbacks?