summarylogtreecommitdiffstats
path: root/bugfix_ctrl-tab_in_last-focused_mode.patch
blob: 72ff8238c15554ce19d08ab68f373fb4090e09f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
From ec861a8ba1f35070ea70496dd9d18976cfa6cca3 Mon Sep 17 00:00:00 2001
From: Merikz <merikz.code@gmail.com>
Date: Sun, 20 Mar 2016 19:55:47 +0100
Subject: [PATCH] bugfix: ctrl-tab in last-focused mode

When active tab was changed by mouse, ctrl-tab did not go to correct tab.
The mouse click did not update the meaning of "previous" tab.

Fixes: #1
---
 lib/PACMain.pm | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/lib/PACMain.pm b/lib/PACMain.pm
index d8dbe87..29b4eef 100644
--- a/lib/PACMain.pm
+++ b/lib/PACMain.pm
@@ -1810,7 +1810,6 @@ sub _setupCallbacks {
 			
 			if ( $$self{_CFG}{defaults}{'ctrl tab'} eq 'last' ) {
 				$$self{_GUI}{nb} -> set_current_page( $$self{_PREVTAB} );
-				$$self{_PREVTAB} = $curr_page;
 			} else {
 				if ( $curr_page == 0 )	{ $$self{_GUI}{nb} -> set_current_page( $$self{_GUI}{nb} -> get_n_pages - 1 ); }
 				else					{ $$self{_GUI}{nb} -> prev_page; }
@@ -1821,26 +1820,22 @@ sub _setupCallbacks {
 		elsif ( $ctrl && ( ! $$self{_CFG}{'defaults'}{'disable CTRL key bindings'} ) ) {
 			# Capture <Ctrl>PgUp/Left --> select previous tab
 			if ( $keyval eq 'Page_Up' && ! $$self{_CFG}{'defaults'}{'how to switch tabs'} ) {
-				$$self{_PREVTAB} = $curr_page;
 				if ( $curr_page == 0 )	{ $$self{_GUI}{nb} -> set_current_page( -1 ); }
 				else					{ $$self{_GUI}{nb} -> prev_page; }
 			}
 			# Capture <Ctrl>PgDwn/Right --> select next tab
 			elsif ( $keyval eq 'Page_Down' && ! $$self{_CFG}{'defaults'}{'how to switch tabs'} ) {
-				$$self{_PREVTAB} = $curr_page;
 				if ( $curr_page == $$self{_GUI}{nb} -> get_n_pages - 1 )	{ $$self{_GUI}{nb} -> set_current_page( 0 ); }
 				else														{ $$self{_GUI}{nb} -> next_page; }
 			}
 			# Capture <Ctrl>number --> select number tab
 			elsif ( $keyval =~ /^\d$/go ) {
-				$$self{_PREVTAB} = $curr_page;
 				$$self{_GUI}{nb} -> set_current_page( $keyval - ( $$self{_CFG}{'defaults'}{'tabs in main window'} ? 0 : 1 ) );
 			}
 			# Capture <Ctrl>TAB --> switch between tabs
 			elsif ( $keyval eq 'Tab' ) {
 				if ( $$self{_CFG}{defaults}{'ctrl tab'} eq 'last' ) {
 					$$self{_GUI}{nb} -> set_current_page( $$self{_PREVTAB} );
-					$$self{_PREVTAB} = $curr_page;
 				} else {
 					if ( $curr_page == $$self{_GUI}{nb} -> get_n_pages - 1 )	{ $$self{_GUI}{nb} -> set_current_page( 0 ); }
 					else														{ $$self{_GUI}{nb} -> next_page; }
@@ -1852,13 +1847,11 @@ sub _setupCallbacks {
 		} elsif ( $alt && ( ! $$self{_CFG}{'defaults'}{'disable ALT key bindings'} ) && $$self{_CFG}{'defaults'}{'how to switch tabs'} ) {
 			# Capture <Alt>PgUp/Left --> select previous tab
 			if ( $keyval eq 'Left' ) {
-				$$self{_PREVTAB} = $curr_page;
 				if ( $curr_page == 0 )	{ $$self{_GUI}{nb} -> set_current_page( -1 ); }
 				else					{ $$self{_GUI}{nb} -> prev_page; }
 			}
 			# Capture <Alt>PgDwn/Right --> select next tab
 			elsif ( $keyval eq 'Right' ) {
-				$$self{_PREVTAB} = $curr_page;
 				if ( $curr_page == $$self{_GUI}{nb} -> get_n_pages - 1 )	{ $$self{_GUI}{nb} -> set_current_page( 0 ); }
 				else														{ $$self{_GUI}{nb} -> next_page; }
 			} else { return 0; }
@@ -1904,6 +1897,8 @@ sub _setupCallbacks {
 		#if ( $pnum == 0 && $$self{_CFG}{defaults}{'tabs in main window'} && $$self{'_CFG'}{'defaults'}{'auto hide connections list'} ) { $$self{_GUI}{showConnBtn} -> set_active( 1 ); }
 		#elsif ( $$self{_CFG}{defaults}{'tabs in main window'} && $$self{'_CFG'}{'defaults'}{'auto hide connections list'} ) { $$self{_GUI}{showConnBtn} -> set_active( 0 ); }
 		
+		$$self{_PREVTAB}=$nb->get_current_page;
+
 		my $tab_page = $nb -> get_nth_page( $pnum );
 		
 		$$self{_HAS_FOCUS} = '';