From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic301-21.consmr.mail.ir2.yahoo.com (sonic301-21.consmr.mail.ir2.yahoo.com [77.238.176.98]) by sourceware.org (Postfix) with ESMTPS id E039A383582B for ; Thu, 3 Jun 2021 15:15:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E039A383582B X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1622733318; bh=I54sOXmvMnhr8JEdSownAbRB2dLgilAxIcvJ6Cph3oh=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=nfLRQMZgJQjHluknxZ27rONeZpUJqGHyry15eSZnmoq5xhVYs+oMCKhggXedwe7rbBVfOVKlDqgOwvlza5eqs5KZmraaxzRDUqhr5GZ0zGPXW9ohYuqgFyTpjVXfWd9bVNNgwqMg27e4urbyNIEJlka2MbUniyDZxvamBzLU/TSR7L7WewZ/9jtiY7gIVfdSF+jky7M94gizliN3/qKG8Mn00qb5FpSJZuxHPH6JFbgbqpiuKhlBOvJDaEZ7kWElbcxhZCxfAb+qvBSTL5du6MdfsPSd83sNXwWe1o99km/ommz+dQexqeO6zQZlN7JePhj8mh1j/su60rCLqDf7VA== X-YMail-OSG: dHVZeecVM1mHcEMMv9jkH_am4msER.RtfMhd7B9daNsKi1oUFRwODAcIpoE.nVF Y4WmT.kqjzNPkWwrdE8Bm8UQWrw3pZvYU.shlLp89YAIehEMImJHx8IfIYYJCnVhUrmPDeqvbxfa vtC1I.yNYqN8mhnirZN29hAHEK2AVwBXBt4f9EUJzayL96s47PVh6WDuXcaExrjzlU9Wd1h6TD0r giwhSjgY24ZIDsUuv4jvuy6MIm_uWireBNXn4rs7TWkHz3n.RadvfbpBCd1OXh.SBwywQNf.lmvq .jqBwCJeq62h3gtzjRn.cmp6wQ0CYGtcCpyzCEbRBXTUSL3.NYb88_rWmC9qxyPLCaCUTbDmii_3 05VVAlSbZtnlbUgA3aLgZJwQcXpyxyyYeT3rHS2HI.6.TLzvCT6iNaz.cxxlwxyV81wfRZtFRucS By5e6II2Izv.V8Am64VULMrsMUQqIBZLAYIS7H44GY3RNPMubwXKevs5YxKPzar0Z_w2ARnZ_RpO KhSQ6PNOAZ20RR8WzX7COxqb28WEAlevYW6opBOTFqIfwNAm9Af_B0htHGXPI79ggh3WMlPrlRbQ R7n8a5nMEWxJ0.MFybdnIVBYMQGYNtPRiWXAunpW7H4fAv3JU69zMniDxxJs.OT0oCRTfiS.8_W9 Gm7bo7NjEWm95iJg1KbL67305SEBLG3cU0Q2Dx840J3r.V7SxJ0d3Va5QAgXFGSKLJjZlbv2tIO6 WD2uFTiwgaooXi0K.FeSiOYptS.Vwf520YRNYo2S637VuB.oa8r.gRjH__5OuvjjgFqMm0Slo0d5 VXg7if.wkc9fwmclYp1wJesQseDTSOZZmzZ27dwEOS9Gl4hey2rGjt.j6GCMaOOwWofnMQEvwnrR yoBb.LFgjpJdrWrRgVXa5BQu_t6XyiGfisIekgwd_g67s45eiimIHUXR6Vbi2Br5tDDmaBwiR.PK J07.dVnCd4IZbKmXSYOMgxG8hDn0pk4to.BIYlIiG1nliUhuncCOQ.QQdpM3s1TqFL1baAOjOnHp fQ2lzyLBLf5I5ysSlVHPpLgBCXvwME9c1acOUJ359RzaKYNsd6MjIUgInl3iyCJyrbu5e65LX3lG Ao3FiX88xCRK0aQJo0Fw8X9CxP4LfRrXA.nRv4IX_fFr.Yen6xycEBDFyzBpLaoMgqFPhHaBUmVC kHTcEYlsh_kuyKDNs.M_l6.IQA.VXAapxq9Ll7l3PluKBtQsBY9NqBbUt4wi.iGLGwqbY2h05J4_ imzDCxvnq1wCxLIE69gE7N5kpsf_3Yjri_bKNuAJrNdCH7PzMfgxASDUOmqqUWdPzVXzYjmYbVQO VTtm87E3YfobrtNFG0S_btJsNVm5zVapr8C6.nLvJnC5eP1pB2TykEBbP0p651d2Nr0pBeZC0OI9 QuBoxJlVvmtxCtR.VJn_Uc3uooSZ5HRbrAtyXxdUg78YBB18Hui1vPPkOEEWBBuxok.L4DIn7D76 OEnKrneVURiCs8xUzQpTXSNxSwXLyJCQmc4JEYYIvBk3kNvBxa.0dacDPo3EOUWKZ0iu1qnjZz5B iI_opCIpLrimsmmxtTaagPHnFxjYhDbTSteGHIVb3fBOM9XzP31MHsF1CbWbMplKcEKy5ijhU2kL pXU2WhqS7Pk6oOv5VsO6C3j4k8Hff35DpSwFvBNw4euBrOjltQjP0R1KjAxyVMNSpibhcNsgfUn5 x.qhOGpJVJ4Zd0w5gYupzXEpITWxxlibhoy0VUwj1UlxwJ4GrOI6XKl1yT6ictOJihOM3lI9cKMa n9gQv_DlW0qD50eajurcp3zF.DkHBgtGTBd2FWoCtUu9vGLjJuuBG0Z6Y201lt_X2yZPfLuQQwgr FwvGlOVOWnYSy.QMe_l2f10Kqmyr0d7Ncy8OmFn9BLgasW94Yjqs00gInWHnmO7HUbnfWmpzXYd8 IUE9ap6a5ds27BxxQ2w7XI8Bm8KqYcBAeM2VkKUhJIYfK3YHhye5v8kCChbWUrGYLPj2nrrBdKbq 3ZOSbt7gct5QrHsvluqKbeF4zhXSOU0ZwWSY.G2cJyhd8GJjjxo5XF0kMRO48AvwnFw9U6DROi1z fbZx6SEgFKbESEY9kNplD6.fn7nb_RH2Tj6XQ13eev_CfucTiOMwyRXGSZ_EkK42KA3vF0BhtscB _ku0hfXC46kunyWuYBI2WKeydqinlnLea7IfCltsp2oTJTehli4uOJFcYPDAwHgGF5A8DujJmWdE ON1P0d6Le3LjNrmHv74j4teIBihAUIOIPOa93qd7A9QhuLp213GAFpGPN6Mgz1kzU52Z4j1F5mFZ oc1kHVdEvy_ZEYwHJFplJnDvqNFWlgNlJa9P_x.2g3hDnHm73i8aZFX2I65QtmxKn9nxPM30nV4k 1aipwwvmCnMfoCEl7yAB.ldlOu.9Wgx.ADWaXn7FtW._YdM.4l5vAuwjPpMn7rAunjiF5QheKW1k jzzRI5yc- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic301.consmr.mail.ir2.yahoo.com with HTTP; Thu, 3 Jun 2021 15:15:18 +0000 Received: by kubenode530.mail-prod1.omega.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID e49758f1e681ad0055a0fc348493a9bd; Thu, 03 Jun 2021 15:15:15 +0000 (UTC) From: Hannes Domani To: gdb-patches@sourceware.org Subject: [PATCHv3 2/2] Forward mouse click to python TUI window Date: Thu, 3 Jun 2021 17:14:53 +0200 Message-Id: <20210603151453.15248-2-ssbssa@yahoo.de> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210603151453.15248-1-ssbssa@yahoo.de> References: <20210603151453.15248-1-ssbssa@yahoo.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, PDS_OTHER_BAD_TLD, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org 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: , X-List-Received-Date: Thu, 03 Jun 2021 15:15:30 -0000 If the TUI window object implements the click method, it is called for each mouse click event in this window. gdb/ChangeLog: 2021-06-03 Hannes Domani * python/py-tui.c (class tui_py_window): Add click function. (tui_py_window::click): Likewise. gdb/doc/ChangeLog: 2021-06-03 Hannes Domani * python.texi (TUI Windows In Python): Document Window.click. --- v2: - Added ChangeLog. - Specify in the documentation that mouse coordinates are 0-based. v3: - Mention possible button values. --- gdb/doc/python.texi | 7 +++++++ gdb/python/py-tui.c | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 0d8f480e472..7574d29f2c2 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -6022,6 +6022,13 @@ 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, whose values can be 1 (left), +2 (middle), or 3 (right). +@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