-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: rxvt-unicode-sixel
action: commit
revision:
path_from:
revision_from: 238b3dfedf3d1bece76170c9cb538f1bfc36f3f6:
path_to:
revision_to:

git.thebackupbox.net

rxvt-unicode-sixel

git://git.thebackupbox.net/rxvt-unicode-sixel

commit 238b3dfedf3d1bece76170c9cb538f1bfc36f3f6
Author: Tim Pope <code@tpope.net>
Date:   Fri Aug 19 23:02:46 2011 +0000

    Consume button release events in matcher

diff --git a/Changes b/Changes

index 1732be1692be345a4ab046d86d1dd1c25bcc0b20..

index ..2720199c43bc8de44671c7fc45a77eafd6c621c3 100644

--- a/Changes
+++ b/Changes
@@ -39,6 +39,7 @@ TODO: split ROW into a ROW_fast (0..total*2-1) and ROW macros?
         - correctly split long lines when scrolling.
 	- Fix compilation on systems with bsd style utmp and no utmpx,
 	  such as openbsd.
+	- consume button release event in matcher (exg).

 9.12 Wed Jun 29 14:34:28 CEST 2011
         - fix regression in processing of SelectionNotify events.
diff --git a/src/perl/matcher b/src/perl/matcher

index 4cd25de09128f93da234dd99da7af7dce109bc34..

index ..22cb60ba37232a5a8e7101b5fbbc8aa0c837ea9a 100644

--- a/src/perl/matcher
+++ b/src/perl/matcher
@@ -164,12 +164,16 @@ sub command_for {

 sub on_button_press {
    my ($self, $event) = @_;
-   if($self->valid_button($event)) {
+   if($self->valid_button($event)
+      && (my @exec = $self->command_for($event->{row},$event->{col}))) {
       $self->{row} = $event->{row};
       $self->{col} = $event->{col};
+      $self->{cmd} = \@exec;
+      return 1;
    } else {
       delete $self->{row};
       delete $self->{col};
+      delete $self->{cmd};
    }

    ()
@@ -180,19 +184,20 @@ sub on_button_release {

    my $row = delete $self->{row};
    my $col = delete $self->{col};
+   my $cmd = delete $self->{cmd};

-   if(defined($row) && $row == $event->{row} && abs($col-$event->{col}) < 2) {
+   return if !defined $row;
+
+   if($row == $event->{row} && abs($col-$event->{col}) < 2
+      && join("\x00", @$cmd) eq join("\x00", $self->command_for($row,$col))) {
       if($self->valid_button($event)) {

-         my @exec = $self->command_for($row,$col);
-         if(@exec) {
-            return $self->exec_async (@exec);
-         }
+	 $self->exec_async (@$cmd);

       }
    }

-   ()
+   1;
 }

 # vim:set sw=3 sts=3 et:

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 11:35:55 2024