From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.devel Subject: Re: Help with tooltips and events Date: Fri, 23 Oct 2020 15:45:49 +0200 Message-ID: References: <833625jcsb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26505"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Oct 23 15:47:21 2020 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 1kVxPc-0006n7-RC for ged-emacs-devel@m.gmane-mx.org; Fri, 23 Oct 2020 15:47:21 +0200 Original-Received: from localhost ([::1]:49048 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kVxPb-00015f-U3 for ged-emacs-devel@m.gmane-mx.org; Fri, 23 Oct 2020 09:47:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59888) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kVxOG-0000Zv-Hx for emacs-devel@gnu.org; Fri, 23 Oct 2020 09:45:56 -0400 Original-Received: from mail-am6eur05olkn2065.outbound.protection.outlook.com ([40.92.91.65]:62049 helo=EUR05-AM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kVxOD-0004Ye-Fc; Fri, 23 Oct 2020 09:45:55 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MxJz8pc1fahgy/Nabh9A0gexqWzI7FwiYYTXLyrpedHlqE9ZFpJ/TRmzr8s+DbOtxN2vqr0DHnuoXW9ixL4TrztmX4MoK7HSHlAENUaLCOxQXAOV8U9k2TX3DhheUyzEeUbbXOfkxZKLGeQxMaD6LHAIRktekV7tNqsR/mhMrwIfneM2bL3vheX31dNbUizjMNZ68XQZ2y0d+VK5nWXIZCtVJ/H8r/RY5XekImdF/X+/VcZpvLZ+GRAiL5mFp45+zlWXua2aP7aDBobVrUq/afiS7CSiO0i4hgGf0cyIQJ4QEHj8hBw9RIiiYQWSPaG6zbhPK4Z2rjyWJ8ZewvQ1CQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HnPTxlpbjDvBKrNAZPGS3se/LzCmMaqd6YVIfc6iiDU=; b=ORdEzXmphSVP6lbEEkQpSRAS8aFAvPfnXiMrXNSi344i1w9uNqprLbN70kVxWgaWBE09sDKEgshPaJRmCDYWeGBzp79rzwu4Jw3y66qtECkdH+ADyImofOVT3BQWAMuRgOegLFqLLMUVFvJ5xDGJZGLK87S163qp+GxbYmKJOPHNWoIfZwwwxcIlEyGUh+1uJo5B/RpQbxAg87eezMpbb7d5kl4dCzwoLfDqHQYmIcLphzFWIWzrcNCFlk5KlOblmeqpINjwTCAspUsISNSe8+ySIL6EDGsiW+rMLRiMl5Vp/gMdhbYzkcUR9fTVaKGj+rjPP0rfe3t6l8C15I88VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HnPTxlpbjDvBKrNAZPGS3se/LzCmMaqd6YVIfc6iiDU=; b=I/M/iJmQkOydOy+JGi3JvJkdRFhBncqDLBfJK4gKFmwOqkQvakhxkmNKTkz5ZLZ0MRWNRYxQPqeCubbkvjTEWKDeK2pl6ZquKx+dy2FI7p3/vxR21hVeNfmulpCdmsEzt0VtAJFeBQSk7whmH8IuGmyno3NcrcWnXIYkYsKNGSb2eWf5XZTqx1zNkMuQfbf9m4UZ7gB2jCmaVk2UM7RF0Dx22pa4GBxm5VeN7RXWFQxJBvtxx5JgnC2x/+37Pr/EmsqsXOV306i/q3vWNzwJrWyBEPypaRMZi1Kz60ceuMFyrZomYQgmiqzaBFtflE3xmUVCFFNkl4FAQIlI/baVrg== Original-Received: from DB8EUR05FT057.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::4a) by DB8EUR05HT102.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::265) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Fri, 23 Oct 2020 13:45:50 +0000 Original-Received: from VI1PR06MB4526.eurprd06.prod.outlook.com (2a01:111:e400:fc0f::4c) by DB8EUR05FT057.mail.protection.outlook.com (2a01:111:e400:fc0f::403) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18 via Frontend Transport; Fri, 23 Oct 2020 13:45:50 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:2F8DF94E433B262577256115EE9DB3D545A726E7A595FA8AB9FD5937362D59DD; UpperCasedChecksum:76EE5AFE73D4685810076F37A72EF55D723405638F042C33DAA685B8CAA39E7F; SizeAsReceived:7460; Count:46 Original-Received: from VI1PR06MB4526.eurprd06.prod.outlook.com ([fe80::187b:196a:cb2d:adf1]) by VI1PR06MB4526.eurprd06.prod.outlook.com ([fe80::187b:196a:cb2d:adf1%5]) with mapi id 15.20.3477.028; Fri, 23 Oct 2020 13:45:50 +0000 In-Reply-To: <833625jcsb.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 23 Oct 2020 16:24:20 +0300") X-TMN: [D9jIhEqdWTrtLh+r/3nCXvmUWhXsjR81] X-ClientProxiedBy: AM6P191CA0094.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::35) To VI1PR06MB4526.eurprd06.prod.outlook.com (2603:10a6:803:ac::17) X-Microsoft-Original-Message-ID: <87v9f1njhu.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from pascal.homepc (90.230.29.56) by AM6P191CA0094.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18 via Frontend Transport; Fri, 23 Oct 2020 13:45:49 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: d6acd0ed-48bb-44b0-0349-08d87759f3db X-MS-TrafficTypeDiagnostic: DB8EUR05HT102: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x8kOe7oAazG/Eu/wu9yuLroORjgerFZNwTg9kZK76i3GZ0Jl8WVsRm3M0KxciNhNUDCa4xmJG0UGwLjUHDvvsSb9rkL5UD3wGlOJvUh3VKWpNj8ucUl7GK3xJtcaeN1C8UtngCmyHMjppoxWI5amn8WWUIs0VumrQfT6Z5tJ1iQzo7qT9JUespInVnc6duQMC7q0QJsfUhk8gVfTaIWPWQ== X-MS-Exchange-AntiSpam-MessageData: dFGO9cWVFHiPO+I0PuH47RVJ/CDtDsEJTjVnvNw64almjlDFDTZ6il0Z0usff8+VrKrmu+XbTFZdYxpH95HMUwKReGY3Y4wRT8kmDdEET64QBqfw6gBSY/HGw5fvCdHBJSnN/9VMhaHvDcswYPpTTg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: d6acd0ed-48bb-44b0-0349-08d87759f3db X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2020 13:45:50.4474 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT057.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8EUR05HT102 Received-SPF: pass client-ip=40.92.91.65; envelope-from=arthur.miller@live.com; helo=EUR05-AM6-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/23 09:45:51 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] 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, DC_PNG_UNO_LARGO=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:258355 Archived-At: --=-=-= Content-Type: text/plain Eli Zaretskii writes: --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=sticky-tip.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAhwAAAH0CAIAAAD5Y2NZAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9 kT1Iw0AcxV9bRSktDlYUUchQnSyIijhqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ /ABxcnRSdJES/5cUWsR4cNyPd/ced+8Af73MVLNjHFA1y0gl4kImuyp0vSKIfoQxjD6JmfqcKCbh Ob7u4ePrXYxneZ/7c4SVnMkAn0A8y3TDIt4gnt60dM77xBFWlBTic+Ixgy5I/Mh12eU3zgWH/Twz YqRT88QRYqHQxnIbs6KhEk8RRxVVo3x/xmWF8xZntVxlzXvyF4Zy2soy12kOIYFFLEGEABlVlFCG hRitGikmUrQf9/APOn6RXDK5SmDkWEAFKiTHD/4Hv7s185MTblIoDnS+2PbHCNC1CzRqtv19bNuN EyDwDFxpLX+lDsx8kl5radEjoGcbuLhuafIecLkDDDzpkiE5UoCmP58H3s/om7JA7y0QXHN7a+7j 9AFIU1fJG+DgEBgtUPa6x7u723v790yzvx9aR3Kdfo5oKQAAAAlwSFlzAAAPsAAAD4gB/uEgRgAA AAd0SU1FB+QKFw0fOVz4kXYAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAg AElEQVR42u3daXQV153v/X9VnVnnaJ7nCYlJDAIJMxoMtjHGcewktuO423HfZHW6s5I890mvlV5J VlZWP7m90ut2P31z03m6k+6k4+S6HWI7iWcbsM0MYgYxCCQ0ISTQPJ35VNXz4mAhCQGSEJP4fl5B qU6dqr3r7N+uvavOUWROpbnppwIAwE1TzBNVyrPfoCAAADfJ3PRTlVIAAEwVQgUAQKgAAAgVAACh AgAAoQIAIFQAAIQKAIBQAQCAUAEAECoAAEIFAABCBQBAqAAACBUAAKECAAChAgAgVAAAhAoAAIQK AIBQAQAQKgAAQgUAAEIFAECoAAAIFQAACBUAAKECACBUAACECgAAhAoAgFABABAqAAAQKgAAQgUA QKgAAAgVAAAIFQAAoQIAIFQAACBUAACECgCAUAEAECoAABAqAABCBQBAqAAAQKgAAAgVAAChAgAg VAAAIFQAAIQKAIBQAQAQKhQBAIBQAQAQKgAAQgUAAEIFAECoAAAIFQAAoQIAAKECACBUAACECgAA hAoAgFABABAqAABCBQAAQgUAQKgAAAgVAAAIFQAAoQIAIFQAAIQKAACECgCAUAEAECoAABAqAABC BQBAqAAACBUAAAgVAAChAgAgVAAAIFQAAIQKAIBQAQAQKgAAECoAAEIFAECoAABAqAAACBUAAKEC ACBUAAAgVAAAhAoAgFABAIBQAQAQKgAAQgUAQKgAAECoAAAIFQAAoQIAIFQAACBUAACECgCAUAEA gFABABAqAABCBQBAqAAAQKgAAAgVAAChAgAAoQIAIFQAAIQKAIBQAQCAUAEAECoAAEIFAABCBQBA qAAACBUAAKECAAChAgAgVAAAhAoAAIQKAIBQAQAQKgAAQgUAAEIFAECoAAAIFQAACBUAAKECACBU AACECgAAhAoAgFABABAqAAAQKgAAQgUAQKgAAAgVAAAIFQAAoQIAIFQAACBUAACECgCAUAEAECoA ABAqAABCBQBAqAAACBUAAAgVAAChAgAgVAAAIFQAAIQKAIBQAQAQKgAAECoAAEIFAECoAABAqAAA CBUAAKECACBUAAAgVAAAhAoAgFABAIBQAQAQKgAAQgUAQKgAAECoAAAIFQAAoQIAAKECACBUAACE CgCAUAEAgFABABAqAABCBQAAQgUAQKgAAAgVAAChAgAAoQIAIFQAAIQKAACECgCAUAEAECoAAEIF AABCBQBAqAAACBUAAAgVAAChAgAgVAAAhAoAAIQKAIBQAQAQKgAAQgUAAEIFAECoAAAIFQAACBUA AKECACBUAACECgAAhAoAgFABABAqAAAQKgAAQgUAQKgAAAgVAAAIFQAAoQIAIFQAACBUAACECgCA UAEAECoAABAqAABCBQBAqAAAQKgAAAgVAAChAgAgVAAAIFQAAIQKAIBQAQCAUAEAECoAAEIFAECo AABAqAAACBUAAKECAAChAgAgVAAAhAoAgFABAIBQAQAQKgAAQgUAAEIFAECoAAAIFQAAoQIAAKEC ACBUAACECgCAUAEAgFABABAqAABCBQAAQgUAQKgAAAgVAAChAgAAoQIAIFQAAIQKAACECgCAUAEA ECoAAEIFAABCBQBAqAAACBUAAAgVAAChAgAgVAAAhAoAAIQKAIBQAQAQKgAAECoAAEIFAECoAAAI FQAACBUAAKECACBUAAAgVAAAhAoAgFABABAqAAAQKgAAQgUAQKgAAECoAAAIFQAAoQIAIFQAACBU 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 Q8hZMwAAAABJRU5ErkJggg== --=-=-= Content-Type: text/plain >> From: Arthur Miller >> Cc: eliz@gnu.org >> Date: Fri, 23 Oct 2020 15:12:44 +0200 >> >> I was looking at those sticky tooltips idea yesterday and I really can't >> find where do I hack tooltips to let through events for tooltip frame. >> >> I need ButtonPress so user can enable the checkbox and I need pointer >> motion so user can move a tooltip with the mouse. If I can also put the >> cursor icon to grabbing hand (like in pdf readers) while moving the >> tooltip tt would be the icing on the cake. Just tell me what >> mechanism/place do I look at? > > I don't understand your problem. can you explain it in more detail, > and maybe provide an example of what you were trying to do? When I create a native tooltip frame, I wish to be able to click in it, so I can click on sticky checkbox. So I need it to react on mouse click events. If a tooltip is made sticky, then it might be useful to move it around to some place in Emacs frame where it is not in the way, so I wish to be able to click and drag the tooltip frame with the mouse. You can see in the attached img what checkbox I talk about. Tooltips by default does not respond to mouse (or key) events, so I have tried to buttonpress and pointermotion even for tooltips, but I don't seem to do it right. In x_create_tip_frame: attrs.event_mask = StructureNotifyMask | PointerMotionMask | ButtonPressMask; tip_window = FRAME_X_WINDOW (f) = XCreateWindow (FRAME_X_DISPLAY (f), FRAME_DISPLAY_INFO (f)->root_window, /* x, y, width, height */ 0, 0, 1, 1, /* Border. */ f->border_width, CopyFromParent, InputOutput, CopyFromParent, mask, &attrs); ( ... ) /* Also do the stuff which must be set before the window exists. */ gui_default_parameter (f, parms, Qno_accept_focus, Qnil, NULL, NULL, RES_TYPE_BOOLEAN); gui_default_parameter (f, parms, Qforeground_color, build_string ("black"), "foreground", "Foreground", RES_TYPE_STRING); ( ...) I was also looking at fun_window_change_functions in window.c, too; when buffer is changed: if (!FRAME_LIVE_P (f) || !f->can_set_window_size || !f->after_make_frame // || FRAME_TOOLTIP_P (f) || !(frame_window_change || frame_selected_change || frame_selected_window_change || frame_window_state_change)) /* Either we are not allowed to run hooks for this frame or no window change has been reported for it since the last time we ran window change functions on it. */ continue; In xterm.c, since I have set no-accept-focus to nil, it should not ignore button press, no? According to the comment. But I see no effect, so there some other place I am missing. case ButtonPress: { /* If we decide we want to generate an event to be seen by the rest of Emacs, we put it here. */ bool tab_bar_p = false; bool tool_bar_p = false; memset (&compose_status, 0, sizeof (compose_status)); dpyinfo->last_mouse_glyph_frame = NULL; x_display_set_last_user_time (dpyinfo, event->xbutton.time); f = mouse_or_wdesc_frame (dpyinfo, event->xmotion.window); if (f && event->xbutton.type == ButtonPress && !popup_activated () && !x_window_to_scroll_bar (event->xbutton.display, event->xbutton.window, 2) && !FRAME_NO_ACCEPT_FOCUS (f)) { /* When clicking into a child frame or when clicking into a parent frame with the child frame selected and `no-accept-focus' is not set, select the clicked frame. */ struct frame *hf = dpyinfo->highlight_frame; if (FRAME_PARENT_FRAME (f) || (hf && frame_ancestor_p (f, hf))) { block_input (); XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), RevertToParent, CurrentTime); if (FRAME_PARENT_FRAME (f)) XRaiseWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f)); unblock_input (); } } --=-=-=--