From 52d25c6ffaa032d9a467d44ad627db68ac67995f Mon Sep 17 00:00:00 2001 From: yggverse Date: Sun, 28 Jul 2024 14:48:46 +0300 Subject: [PATCH] draft middle click event implementation --- .../Container/Page/Content/Gemtext.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/Entity/Browser/Container/Page/Content/Gemtext.php b/src/Entity/Browser/Container/Page/Content/Gemtext.php index f8a500d1..08f3a3d2 100644 --- a/src/Entity/Browser/Container/Page/Content/Gemtext.php +++ b/src/Entity/Browser/Container/Page/Content/Gemtext.php @@ -5,8 +5,10 @@ declare(strict_types=1); namespace Yggverse\Yoda\Entity\Browser\Container\Page\Content; use \Exception; +use \Gdk; use \GdkEvent; use \GtkLabel; +use \Pango; use \Yggverse\Yoda\Abstract\Entity\Browser\Container\Page\Content\Markup; @@ -280,6 +282,29 @@ class Gemtext extends Markup ); } + protected function _onButtonPressEvent( + GtkLabel $label, + GdkEvent $event + ): bool + { + // Open link in new tab on middle button click + if ($event->button->button == Gdk::BUTTON_MIDDLE) + { + $result = $label->get_layout()->xy_to_index( + $event->button->x * Pango::SCALE, + $event->button->y * Pango::SCALE + ); + + if ($result) + { + // @TODO + return true; + } + } + + return false; + } + private function _wrap( string $value ): string