From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id aBlpAURPsmDCegAAWB0awg (envelope-from ) for ; Sat, 29 May 2021 10:27:16 -0400 Received: by simark.ca (Postfix, from userid 112) id 047061F11C; Sat, 29 May 2021 10:27:15 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 0C7551E54D for ; Sat, 29 May 2021 10:27:15 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9E9243839C40; Sat, 29 May 2021 14:27:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9E9243839C40 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1622298434; bh=vtf4PKt1UabuhhLm6ul+Prn3mEhP0Jwqhgt9zJ/hjj0=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=dSl6jUZeXaDi73PFgmt3MrPI9wYxRSIpKsdkc7OVbGJ7Fw+pUtQ8UGT5ZzDwfZ6ng kdhZ5/XMHdfRFTdQQiIixX6MDxEZVYS6y21Hvqp0vXnkNYPTBk4TVLptnjVEevrDjA 0xRhoYIz51ZLDTKr84pUuAFhdViIOukkr3mo9o3M= Received: from sonic312-25.consmr.mail.ir2.yahoo.com (sonic312-25.consmr.mail.ir2.yahoo.com [77.238.178.96]) by sourceware.org (Postfix) with ESMTPS id EA2563857004 for ; Sat, 29 May 2021 14:27:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EA2563857004 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1622298430; bh=ZpcqJZs7/eygWkXJQc4NiltElrJYJgt2MZeytEjAlXc=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=Y/Ugu3SDGU3NUfyMVZU0t2xxSBkYJ/6MsTOz7gKRF1zb9q9oaUhdnrVtPsuDIhBjUgORNffF/LI+nSzRDBn866+VSoYiylqE7ZmIjm7BVfMk/K0R4aLhtEoPDUsWYWOSXz1Gy1DY4jBOSZwoWe9ty0mvKyON3emmQbL5XeJxUHSVwB9VnrjRO2Fl4dqOFYKpHXqDH9he9lMgN0oqCZKLDFzo4og+Zqj3wVuxnWuAJ4jMPCkJ0TdtjKyEJ6GOaLvGBChuL+8kU61BGGZavhlj3CTH3hNLWF2995sqFI3bbDUhLpSIFPkLfJ4r4AQZyghHJAzbePgvMQrW/cf8C+x23g== X-YMail-OSG: BRIwnB4VM1l8LIB5RmDnMUi0miNWgO0rFjFMMMfXFbczoUHJ5SzQZVJGR42evkM 9X6wMJE2uwuyq8oilc8JZvbCjkdNPHz9aZPW0zM_pBqx.bd9MAg3yCl0OvvoFe07OxZQ3OboRhMf 7EGfXus6xlb7QasfheP3z2qLcqCyeU4qyQWmrU.6BL1SDxNthDFBsUVcaT.n6iwjnSJtQQKX4gTa OIFsXqPEuWP_AlrV2IxTqQUB9PZxgdTgmUpT0c4.ZW1zotM6JiPMJ1_9Vj6vyidFy8vadXq0wknJ K_9PPWMd40rt6_9lthHDmH.eO4Sn1DvoSOhzTZyHbcdlnLdX9cfl2rHaskYv6Y2f2hbd3FLm6dQU FY0i2SPIEcCWldNwO_izDXEP91LxcJbu1Yg9_vgioMq1Wk61frry7nrx9EqwD4EbjnrYWf6FCWVb MwMRLtQyha11MvxFo4g8mX9PwHnRWQFj25AP6uVq1fa5sMGxnbuOy7xmuuvH8twqDt4.vnvFcEIp ku61foh1BnYdQPyWfT7YJexTVgRf0fF4DG.TKn_rJAkWdRPcE7X2Y5Yx0Nk.b2w2l6.lzP2XLf0o czEY2EuX_N6QPNk0N0_vZHmNzr6fSYvEm0rsKoay3J7wUC0hFtZJ9GFQCqNCL9BUXdXrqJnJNNeE lgdbpjP.LXPVL7uKjM1QQ3BGR2ObdWFdYmHKD373Mpd5PADULjgJgYLEBbp6GysvYcKADmEvFLs9 KL.JBsbSzNBQcosHxME7WdLBphe82Iw2Ag3L8CujOI6FQVygWr8a7NYKEDrFF66uyLrzwJ1N9VTb RCz75Z2xjHkIBmZJK6MtEXT4HQgh7HGXdQPOwGH89ikrLujorndtI01WhhHjQ4VN6eD9M7fKxPtL VYdSDruVnq6_832anCbwwA0WZTf0YqzF3SGMG9Gug9MeFE4MtXt3G2.G.AO_JZuIgdN83BoPyVox Q5kF7hLiUZFL0cZG_sRlPAnhK0N1lOcnHuVqbaBIaFnjHSDOqzBK0xrBx2EqKWXxAblmuWvrkbFl XxS__CY73wBgWc8SZlUkxvgNITfcvTC8GSBkehXyiDCGp.iuia2M2_xXg9CLbFRIMIMlM75gCbWh iuqD81lfjw42fCSVJB3bVbxZ0n9doAwRiDw8lgRCmIJgSLATdvWDSZrP0hCnYacnPKiwq7oahpRH UXxDPPic7eQGJ9M6P9SLotI8mzY0RxtQoOdm3mIjucwke_bmJGTQ8KiXCtKf8ID8WUoAkSGGzoXC _GnfDRzOETZXCQei73iR2B6ymGeZUXuTAQIq8wnG0WyKP.0ggcrLFmRgL8tuoKmmdud14iB7ezQV I2zTNHV3i.2pvKK7CfPQOehKXy5mmF_P69EZDsNWSEpdUCKg37W2m2LoTPl5XKy46QAAC.grDZYf m72_zhX9aHOSVVdqVUeVMZUtDrO130X1V8RMmtFCn58wTDKrmeIEjzjISF1tsai_PgrR7v7_b0mS rOpwf.1FOApvFEG5lKPkZ8GigDDnpGDt5s0y3JYkRR6n10tPwpeZCgaKuniiVit.UpBkiHxtIVHl fwsws3YU6E3kakU8mVyzRYiID_cA9gYfs1ivzqiA2nHF1N5tnn7b_E_aiDRDduLEwjMg8bfYMtI3 IODTbGaGUjkEXPNRLC1zZiMEq8v6HIeTakp_.X1gNEZbXWeyUyZIWumfno4jyGwcJa8oC_6EO5DI 8oCmIcs0VyUISFHwbvXNoIYksQC_uTohDaLvNJZD7qWjcsCg2AcJ8eKmYpiJfzfGAo_QNwpr7.bx Uka8XMsBWrO_EFi.6XE60v0ug2NHc9MQKlc8MGci28Y6mhPIRNU884gV1GdM4wP_XDUmH3jZLv_3 KmSMRtmFt7yL.uyW3HJdyEOzJYjCpXAgYz1RVVLNx8uNp3OWgiLhuEGWuashpAC5VW6539hVixhn X.TBBdky6ypr01cpBksYFdg6AVVT6JHPQ9pPiFtpG3hC36FSHSLlCkDY1Sov9EZShqQTuyojjg0L Jc_MU_5qhjpjobJT5ErzU02_iCUKi4rRqLzaMZwwn_u5aqw8bBlnfmvlrFEPXwqKXshFkcP3bLHE wZZnu6HsHJbzr3_LxCIcKpY9iMIhiWTFxj5HyNkAA7TGk.jQy8y3MFsbgeZm7fpptD7SYdTxfXjH ypRxsU30CTezCI5IoaQLe8pYEdKT1fX1s.3ea_YdhUbowlMvC15WH4IFMcj4vvvE3ySYmkoe_qoH mEQQFCsJlH2vCyZoK8Xp2eemfNZpzD1Kw.HtydK0w1LrnuxNRPiD5mSAVnHVUk9uD00wb4Db16Uk i4XcYicrXmC4HhyFkSWD_3qDuywzuytOQEBeWjkFZ8obS_HJxKch6jixGO_qKfPGvwgmPcywsR6l COiE_A489V1_iQfG9H4UkP2nYROI4w5Y.dFL8hw2JBbXvNG_t0ZW89Cc1Dp2BW5CByRBBaul15xa 8NgZMLzcIi3r0ZA-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.ir2.yahoo.com with HTTP; Sat, 29 May 2021 14:27:10 +0000 Received: by kubenode529.mail-prod1.omega.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 5e355b07dc4307ae558d1b8ceace0e12; Sat, 29 May 2021 14:27:07 +0000 (UTC) To: gdb-patches@sourceware.org Subject: [PATCHv2 2/2] Forward mouse click to python TUI window Date: Sat, 29 May 2021 16:26:36 +0200 Message-Id: <20210529142636.11432-2-ssbssa@yahoo.de> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210529142636.11432-1-ssbssa@yahoo.de> References: <20210529142636.11432-1-ssbssa@yahoo.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Antivirus: Avast (VPS 210529-0, 05/29/2021), Outbound message X-Antivirus-Status: Clean X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Hannes Domani via Gdb-patches Reply-To: Hannes Domani Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" If the TUI window object implements the click method, it is called for each mouse click event in this window. gdb/ChangeLog: 2021-05-29 Hannes Domani * python/py-tui.c (class tui_py_window): Add click function. (tui_py_window::click): Likewise. gdb/doc/ChangeLog: 2021-05-29 Hannes Domani * python.texi (TUI Windows In Python): Document Window.click. --- v2: - Added ChangeLog. - Specify in the documentation that mouse coordinates are 0-based. --- gdb/doc/python.texi | 6 ++++++ gdb/python/py-tui.c | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 0d8f480e472..445ddd905bf 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -6022,6 +6022,12 @@ contents. A positive argument should cause the viewport to move down, and so the content should appear to move up. @end defun +@defun Window.click (@var{x}, @var{y}, @var{button}) +This is called on a mouse click in this window. @var{x} and @var{y} are +the mouse coordinates inside the window (0-based), and @var{button} +specifies which mouse button was used. +@end defun + @node Python Auto-loading @subsection Python Auto-loading @cindex Python auto-loading diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c index 97e9de7a00c..8dfed9d341f 100644 --- a/gdb/python/py-tui.c +++ b/gdb/python/py-tui.c @@ -101,6 +101,8 @@ class tui_py_window : public tui_win_info tui_win_info::refresh_window (); } + void click (int mouse_x, int mouse_y, int mouse_button) override; + /* Erase and re-box the window. */ void erase () { @@ -229,6 +231,21 @@ tui_py_window::do_scroll_vertical (int num_to_scroll) } } +void +tui_py_window::click (int mouse_x, int mouse_y, int mouse_button) +{ + gdbpy_enter enter_py (get_current_arch (), current_language); + + if (PyObject_HasAttrString (m_window.get (), "click")) + { + gdbpy_ref<> result (PyObject_CallMethod (m_window.get (), "click", + "iii", mouse_x, mouse_y, + mouse_button)); + if (result == nullptr) + gdbpy_print_stack (); + } +} + void tui_py_window::output (const char *text, bool full_window) { -- 2.31.1