Commit Graph

416 Commits

Author SHA1 Message Date
YUKI Hiroshi
be375327ca Set temporary position after it is completely updated 2015-03-04 10:16:12 +09:00
Piro / YUKI Hiroshi
e80ffd1b11 Save position safely 2015-03-04 01:45:09 +09:00
Piro / YUKI Hiroshi
a6fe5e8fdb Set expanded width of the tab bar correctly 2015-03-04 01:34:24 +09:00
Piro / YUKI Hiroshi
2d8649735e Manage position of the tab bar for each window 2015-03-04 01:22:22 +09:00
Piro / YUKI Hiroshi
ff38e9587c Manage width and height of the tab bar for each window 2015-03-04 00:44:01 +09:00
YUKI Hiroshi
fbc6500262 Don't override autohide state of other windows by last window's state 2015-03-03 20:47:45 +09:00
YUKI Hiroshi
af8a061ca1 Store and restore last autohide mode for each window 2015-03-03 19:45:44 +09:00
YUKI Hiroshi
767479f9f1 Break line for condition and operation 2015-03-03 18:56:55 +09:00
Piro / YUKI Hiroshi
78de7e6b35 Bump copyright year 2015-03-01 23:37:49 +09:00
Piro / YUKI Hiroshi
0afae1c655 Don't try to scroll to the selected tab when it is already in the viewport in its axis.
This fixes annoyingly horizontal scroll happend when ColourfulTabs is activated. #842
2015-03-01 23:35:28 +09:00
Piro / YUKI Hiroshi
6352d57858 Remove deprecated JS1.7's let blocks 2015-02-27 00:59:31 +09:00
YUKI Hiroshi
18e105a561 Don't make hidden the tab bar by clicking on the grippy to expand the collapsed tab bar. (#783) 2014-11-13 17:24:59 +09:00
YUKI Hiroshi
b82f087f87 Don't clear existing tab relation, if the relation is restored and going to be cleared on same TabMove event 2014-11-12 12:46:26 +09:00
YUKI Hiroshi
b4bba86e30 Don't restore same tab multiple times 2014-11-12 12:39:06 +09:00
YUKI Hiroshi
1d988c6b3f Fix typo 2014-11-12 11:43:08 +09:00
Piro / YUKI Hiroshi
2e6c885ba3 Restore closed tabs at once correctly, even if e10s is activated. 2014-11-12 03:58:09 +09:00
YUKI Hiroshi
35d3cff449 Reduce arguments of setTimeout 2014-11-11 21:21:41 +09:00
YUKI Hiroshi
e43dd394c4 Report internal error while restoring tree 2014-11-11 21:21:27 +09:00
YUKI Hiroshi
933d71a1f6 Specify missing "this" correctly 2014-11-11 19:39:22 +09:00
YUKI Hiroshi
97a87d0b1a Remove obsolete "stopRendering" module 2014-11-11 18:58:31 +09:00
YUKI Hiroshi
02bcfe5d8b Handle mouse events for auto hide feature by a frame script, for e10s 2014-11-11 17:45:12 +09:00
YUKI Hiroshi
86b46c04cd Add a note for safely "contentWindow" access 2014-10-29 20:44:01 +09:00
YUKI Hiroshi
12cdd76f7e Detect targets for API calls about tab relations based on "browser" element, instead of "Window" objects 2014-10-29 20:36:12 +09:00
YUKI Hiroshi
e48cf4e38b Uniform coding style 2014-10-22 13:37:08 +09:00
Matthew Noorenberghe
4ea8f31301 Fix scrolling of tabs on Firefox 36 2014-10-21 18:23:17 -07:00
Piro / YUKI Hiroshi
9be3c3493d Flatten deeply nested "setTimeout()" 2014-10-22 03:00:12 +09:00
Piro / YUKI Hiroshi
e0a7e43b3c Flatten deeply nested "setTimeout()" 2014-10-22 02:57:45 +09:00
Piro / YUKI Hiroshi
f89d42db14 Free symbol after all accesses 2014-10-22 02:36:38 +09:00
Piro / YUKI Hiroshi
fe26d207ca Migrate from JSDeferred to ES6 Promise (Promise.jsm) 2014-10-22 02:28:19 +09:00
YUKI Hiroshi
b0b2305bd7 Output index of the "to be restored" tabs for debugging 2014-10-16 18:00:55 +09:00
YUKI Hiroshi
397894d678 Don't mark tab to be restored, if it is already restored 2014-10-16 18:00:37 +09:00
Piro / YUKI Hiroshi
72ae666e12 Restore ancestor relation of tabs even if it is restored by "undo close tab" 2014-10-02 02:10:10 +09:00
Piro / YUKI Hiroshi
35aab258b8 Update the "to be restored" state only once.
Don't update the state again and again, because the tab is unexpectedly "restored" twice after I do "undo close tab"...
2014-10-02 00:57:17 +09:00
Piro / YUKI Hiroshi
db487f32bb Detect DOM instances by constructor function instead of XPCOM interface 2014-10-01 01:32:27 +09:00
YUKI Hiroshi
09f43c8f84 Use LF instead of CRLF 2014-09-30 20:09:27 +09:00
YUKI Hiroshi
db4d2bac2c Update cached "toBeRestored" state for TSTWindow#restoringTree and others 2014-09-30 17:06:49 +09:00
YUKI Hiroshi
b7389dd744 Remove duplicated check ror to-be-restored tab 2014-09-30 16:46:33 +09:00
Piro / YUKI Hiroshi
503803c076 Drop support for Firefox 30 or older versions.
Because Firefox 31 becomes new ESR.
2014-07-27 02:44:23 +09:00
Piro / YUKI Hiroshi
fffcd3172f Fix typo 2014-07-03 02:06:10 +09:00
Piro / YUKI Hiroshi
579d926537 Get actual stored tab id correctly (#676) 2014-07-02 23:32:08 +09:00
Piro / YUKI Hiroshi
511a51dd7e Restore tab position for "Undo Close Tab" command correctly on Firefox 29 and newer versions (#676) 2014-07-02 23:02:53 +09:00
Piro / YUKI Hiroshi
66eb630cdf Revert "Read value of custom attributes of tabs via TSTBase.getTabAttribute() safely."
This reverts commit f4fb6174d2.

This change breaks other features...
2014-07-02 04:44:43 +09:00
Piro / YUKI Hiroshi
ca776a606f Get new position safely 2014-07-02 04:44:02 +09:00
Piro / YUKI Hiroshi
f4fb6174d2 Read value of custom attributes of tabs via TSTBase.getTabAttribute() safely.
Tab's ID and other attributes saved via setTabValue is not available before the tab is completely restored.
As the result, TST sometimes fail to restore tab positions. (See: #676)
This issue doesn't happen on Firefox 24ESR, because recent Firefox (29 and later) uses message manager to restore tabs and it causes such "delay" of initializations about custom attributes.
2014-07-02 04:29:49 +09:00
Piro / YUKI Hiroshi
b386b85bd3 Make the meaning of "tabsToRestore" clear 2014-07-02 02:27:26 +09:00
YUKI Hiroshi
9e32fbe386 Update tabbar appearance correctly, after toolbar customiation (fix #728) 2014-05-19 19:25:38 +09:00
Infocatcher
aea4d110ec Fix typo: 'Transition' -> 'transition'
We still have 'MozTransition' in latest Firefox 32.0a1, so all should have working fine
2014-05-05 17:23:45 +04:00
YUKI Hiroshi
9436957452 Don't update the size of the floating tab bar by "resize" event from another floating box.
This the compatibility issue with Unified Sidebar.
See: https://github.com/piroor/unifiedsidebar/issues/3
2014-05-01 15:44:06 +09:00
YUKI "Piro" Hiroshi
a92de60fd8 Clear wrong relation of duplicated tabs (#605) 2014-04-16 18:58:30 +09:00
YUKI "Piro" Hiroshi
6681a7cd44 Revert "Ignore already cleared redirection table (#605)"
This reverts commit bf576cfb75.
2014-04-16 18:47:11 +09:00
YUKI "Piro" Hiroshi
bf576cfb75 Ignore already cleared redirection table (#605) 2014-04-16 18:45:53 +09:00
YUKI "Piro" Hiroshi
97a06e85db Don't clear tab relations for correctly duplicated tabs (#605) 2014-04-16 18:41:46 +09:00
YUKI "Piro" Hiroshi
ed6fafb2ec Cleanup needless (wrong) tab relations correctly (#605) 2014-04-16 18:23:59 +09:00
YUKI "Piro" Hiroshi
66734bbfaf Ignore already removed tabs 2014-04-16 17:43:03 +09:00
YUKI "Piro" Hiroshi
b94b562446 Specify given tab correctly 2014-04-16 17:42:31 +09:00
YUKI "Piro" Hiroshi
7976852515 Fix missing ")" 2014-04-16 17:39:47 +09:00
YUKI "Piro" Hiroshi
5fccd33645 Clear tab relations based on redirected IDs, if they never been "restored" (#605) 2014-04-16 17:34:39 +09:00
YUKI "Piro" Hiroshi
6e3d43d24b Add "with delay" suffix 2014-04-16 17:19:17 +09:00
YUKI Hiroshi
fd6c08937a Use Object.create to create subclasses 2014-04-02 19:25:51 +09:00
YUKI Hiroshi
29982f0522 Skip dirty hack on Firefox 29 and later 2014-03-31 14:54:39 +09:00
YUKI Hiroshi
f58cd7a994 Restore tree structure on the startup correctly, with Firefox 28 2014-03-31 14:52:44 +09:00
Piro / YUKI Hiroshi
8b3792b312 Use CustomEvent instead of DataContainerEvent.
DataContainerEvent is going to be deprecated.
See: https://bugzilla.mozilla.org/show_bug.cgi?id=980134
2014-03-12 01:50:40 +09:00
YUKI Hiroshi
9a69cb5d1a Split prefs correctly 2014-03-11 11:51:32 +09:00
YUKI Hiroshi
9d1d964f74 Split preference fo different purpose 2014-03-11 11:09:28 +09:00
Piro / YUKI Hiroshi
67aa67a67f Detect number of "not restored yet" tabs on Firefox 29 and later correctly 2014-02-09 01:38:55 +09:00
YUKI Hiroshi
bf84e78673 Scroll to the current tab always, after the tab bar is shown (in auto-hide mode) (#653) 2014-02-06 18:53:58 +09:00
YUKI Hiroshi
617771c1c1 Restore scroll position of the tab bar in "auto hide" mode (#653) 2014-02-06 17:49:47 +09:00
YUKI Hiroshi
439697f462 Don't reset scroll position while the tab bar is invisible (#646) 2014-02-03 17:14:56 +09:00
YUKI Hiroshi
b3382623dd Detect visibility of the tab bar more robustly 2014-02-03 17:14:38 +09:00
YUKI Hiroshi
c91ffcac54 Remove codes for outdated versions of Firefox 2014-01-30 12:36:36 +09:00
Piro / YUKI Hiroshi
658a48a4f8 Open bookmark folder as a tree correctly, even if the user don't want to open a dummy grouping tab. 2014-01-29 02:27:35 +09:00
Piro / YUKI Hiroshi
c82e735bb0 Better compatibility with [Tab Control](https://addons.mozilla.org/firefox/addon/tab-control) #636 2014-01-29 01:53:58 +09:00
Piro / YUKI Hiroshi
c15d267a48 Turn the tab bar visible when it is resizing and going to be expanded from collapsed by dragging of the splitter 2013-11-28 03:43:21 +09:00
Piro / YUKI Hiroshi
1f0f93e9eb Add comment for compatibility with Australis 2013-11-19 23:26:23 +09:00
Piro / YUKI Hiroshi
7bae0f98f2 Fix broken tab contents order with Australis 2013-11-19 23:25:30 +09:00
Piro / YUKI Hiroshi
6b01e0f2b9 Show the tab bar again correctly when I click the grippy in the splitter (#593) 2013-11-10 05:24:36 +09:00
Piro / YUKI Hiroshi
461a8aca98 Update credit 2013-11-10 04:28:07 +09:00
Piro / YUKI Hiroshi
6678d4b697 Call original "stop" method with all given arguments correctly 2013-11-10 04:16:33 +09:00
Tetsuharu OHZEKI
b779d9306a Remove needless access to 'arguments'. 2013-11-10 04:16:14 +09:00
Tetsuharu OHZEKI
ee1eec680d Use ES6 Rest parameters. 2013-11-10 04:15:23 +09:00
Piro / YUKI Hiroshi
2964e64df5 Better compatibility with someone who change visibility of the tab bar.
ex. Hide Tab Bar With One Tab ( https://addons.mozilla.org/firefox/addon/hide-tab-bar-with-one-tab/ ), Tab Mix Plus, and Pale Moon.
2013-10-30 04:20:50 +09:00
Piro / YUKI Hiroshi
0c6acbce7d Support "auto hide tab bar" feature provided by Tab Mix Plus.
This commit is related to #574 and #557.
2013-10-30 04:11:16 +09:00
Piro / YUKI Hiroshi
d17c117804 Prevent infinity loop around show/hide of tab bar related elements. (#574)
With browser.tabs.autoHide=true, some environments (ex. Pale Moon) fall into infinity loop. To avoid this problem, I have to ignore changing visibility around tab bar elements controlled by TST itself.
2013-10-30 03:36:31 +09:00
Piro / YUKI Hiroshi
13584c712a Hide (collapse) the tab bar when the floating tab bar is going to be updated.
By this change, the size of the shrunken tab bar will saved and restored correctly. (#575)
2013-10-23 02:42:22 +09:00
Piro / YUKI Hiroshi
9f721f5be2 Re-show the tab bar correctly after exitting DOM fullscreen mode by F11 (#576) 2013-10-23 01:32:54 +09:00
Piro / YUKI Hiroshi
a234135786 Remove ruin for compatibility with Tab Mix Plus's "hide the tab bar when there is only one tab" feature 2013-10-09 02:38:47 +09:00
Piro / YUKI Hiroshi
a9c59cc286 Don't focus to the tab which is going to be removed.
This fixes #569. In the previous revision, onTabClose method tried to focus to the first child even if it was going to be closed as a member of closing tree. Then TabSelect event was unexpectedly fired, TabWindow.prototype.handleEven (defined in resource:///modules/WindowsPreviewPerTab.jsm) raised an error, and blocked all following event handlers for TabSelect event. As the result, cached tabs list were not cleared and Ctrl-Tab feature was killed.
2013-10-08 02:47:53 +09:00
YUKI Hiroshi
163df63f04 Hide vertical tab bar in the DOM-fullscreen mode (ex. YouTube) (#564) 2013-10-01 10:20:02 +09:00
YUKI Hiroshi
f42084c29d Disable detection for Tab Mix Plus because it is buggy for me. 2013-09-18 18:02:37 +09:00
YUKI Hiroshi
5d54fd5a38 Fix indent 2013-09-18 17:43:41 +09:00
YUKI Hiroshi
8bce1239b3 Detect mode of Tab Mix Plus correctly 2013-09-18 17:43:18 +09:00
YUKI Hiroshi
4bcca0d787 Support "hide tab bar only when one tab" again for Tab Mix Plus (#557) 2013-09-18 17:34:21 +09:00
YUKI Hiroshi
f0e71741a1 Break lines after condition block of "if" statements 2013-09-17 18:17:20 +09:00
YUKI Hiroshi
1f5188defd Add wanabe to the list of contributors in license blocks 2013-09-13 19:58:52 +09:00
wanabe
47ac7924e1 Improve compatibility with "How Many Times Can I Back?" (#397)
use commonAncestorContainer instead of getCommonAncestor()
2013-09-12 14:54:38 +09:00
wanabe
1a83376034 Improved compatibility with "How Many Times Can I Back?" (#397)
"getCommonAncestor" method is not available without jQuery
2013-09-12 12:36:00 +09:00
Piro / YUKI Hiroshi
6bce4e5e19 Inherit width, height, and others via xbl:inherits (#550)
The inner box of the tab bar should inherit width, height, and other attributes given via setTabbrowserAttribute(), from the parent element. However, if the binding is re-assigned again and again, then it can happen infinitely loop when the inheritance is done by xbl:constructor.
2013-08-28 02:25:49 +09:00
YUKI Hiroshi
163b14646d Close needless group tabs automatically if they are temporary 2013-08-21 12:53:36 +09:00
YUKI Hiroshi
db4cd9b6f1 Revert "Don't close the window with the last group tab, if the last child of the group is closed. (#537)"
This reverts commit 63a72c9e62.
2013-08-21 12:20:12 +09:00
Piro / YUKI Hiroshi
2b103ee178 Show/hide tab bar correctly after the grippy is clicked (#538) 2013-08-21 03:50:03 +09:00
Piro / YUKI Hiroshi
63a72c9e62 Don't close the window with the last group tab, if the last child of the group is closed. (#537)
This behaviour can be disabled (and get the old behaviour) by setting the preference "extensions.treestyletab.autoRemoveNeedlessGroupTab.lastTab" to "true".
2013-08-21 03:42:50 +09:00
Piro / YUKI Hiroshi
637a4fd9bc Don't hide the tab bar even if there is only one tab, on Firefox 23 and later (#541)
Because the feature is removed on Firefox 23.
https://bugzilla.mozilla.org/show_bug.cgi?id=855370
However, the addon "Hide Tab Bar With One Tab" still provides it.
https://addons.mozilla.org/firefox/addon/hide-tab-bar-with-one-tab/
So, I decided to activate the behavior only on old Firefox or the environment which has the addon.
2013-08-21 01:09:03 +09:00
Piro / YUKI Hiroshi
481bc1c303 Initialize "Close Tabs to the Right" menuitem even if Multiple Tab Handler is installed.
ddbd41163b (commitcomment-3731331)
2013-07-28 01:57:50 +09:00
Piro / YUKI Hiroshi
fd071ba859 Use vertical tab bar specific accesskey for "Close Tabs to Bottom" 2013-07-28 01:53:46 +09:00
Piro / YUKI Hiroshi
e35f7f04d3 Restore tree structure for "undo close tab" feature #525
It was a regression on 0.14.2013052901.
2013-07-27 13:56:24 +09:00
Piro / YUKI Hiroshi
a416b179a9 Print more information in the debugging mode 2013-07-27 13:55:20 +09:00
Piro / YUKI Hiroshi
54143f450d Don't shrink tab bar when user selects background tabs #526 2013-07-27 03:04:04 +09:00
Piro / YUKI Hiroshi
5b30204112 Output more messages for debugging 2013-07-27 02:03:44 +09:00
Piro / YUKI Hiroshi
ddbd41163b Update label of "Close Tabs to the Right" menuitem to "Close Tabs to the Bottom" in the vertical tab bar #529 2013-07-27 00:51:38 +09:00
YUKI Hiroshi
096830cf22 Don't use __SS_restoreState (See https://bugzilla.mozilla.org/show_bug.cgi?id=867142 ) 2013-05-28 15:43:37 +09:00
Piro / YUKI Hiroshi
43e1813650 Collect strongly related codes 2013-05-06 06:36:17 +09:00
Piro / YUKI Hiroshi
eedc895e22 _reserveCloseNeedlessGroupTabParent() should receive the closing tab instead of the parent tab.
Because another similar method _reserveCloseNeedlessGroupTabSibling() receives the closing tab.
2013-05-06 05:15:55 +09:00
Piro / YUKI Hiroshi
895b038fe7 Flatten codes 2013-05-06 04:52:55 +09:00
Piro / YUKI Hiroshi
1f6333c22c Split a large method onTabClose() to small methods 2013-05-06 02:01:36 +09:00
Piro / YUKI Hiroshi
eda95c427a Collect strongly related codes 2013-05-06 01:33:53 +09:00
Piro / YUKI Hiroshi
1746dbbff6 Split a large method onTabClose() to small methods 2013-05-06 01:22:57 +09:00
Piro / YUKI Hiroshi
f999733b75 Add compatibility note for deprecated feature on Firefox 20 2013-03-06 23:44:24 +09:00
Piro / YUKI Hiroshi
adbebdef7e Reduce use of arguments.callee because it doesn't work on the strict mode 2013-03-02 21:29:41 +09:00
Piro / YUKI Hiroshi
b21590525d Don't insert needless margins between collapsed tabs. ( #466 )
Negative margins for collapsed tabs were unexpectedly inverted for tabs which have its "cannot be collapsed" parent tab. However, such tabs still can be collapsed if its root parent tab can be collapse its sub tree.
2013-02-27 04:38:20 +09:00
Piro / YUKI Hiroshi
72d38659d8 TreeStyleTabBase should not inherit "prefs" 2013-01-06 11:47:50 +09:00
Piro / YUKI Hiroshi
75fdc626b5 Remove codes for Firefox 9 and older versions 2013-01-04 15:17:22 +09:00
saneyuki_s
665cb5668f Move TreeStyleTabBase.evalInSandbox() to TreeStyleTabUtils. 2013-01-04 12:39:58 +09:00
saneyuki_s
a7fc238e4e Move string bundles to TreeStyleTabUtils. 2013-01-03 11:08:25 +09:00
YUKI Hiroshi
f97f25c9e6 Fallback to another method to find tabs by coordinates correctly 2012-12-04 12:32:40 +09:00
Piro / YUKI Hiroshi
8e37edc535 find tab from screen coordinates more quickly 2012-12-04 01:16:20 +09:00
YUKI Hiroshi
1d2566765d Define minimum width/height of the tab bar and restore it on the startup (so, if you accidentaly get too narrow tab bar, it will be fixed in the next startup: workaround for #380) 2012-12-03 21:41:12 +09:00
YUKI Hiroshi
fa893b9801 Change the algorythm to find tab from coordinate based on _animateTabMove 2012-11-30 00:58:47 +09:00
Piro / YUKI Hiroshi
5f59ddb19d Unify extensions.treestyletab.animation.enabled to browser.tabs.animate 2012-11-28 03:34:57 +09:00
Piro / YUKI Hiroshi
a1001d510f Fix typo 2012-11-19 23:27:43 +09:00
YUKI Hiroshi
04eff24408 Don't listen "mouseleave" event (because it increases CPU usage even if we ended to listen the event by removeEventListener) 2012-11-19 16:20:10 +09:00
YUKI Hiroshi
f2fb69e663 Hide tab bar for only one tab window correctly (fix #406) 2012-11-15 16:03:24 +09:00
YUKI Hiroshi
c326bdda44 Don't update indent of tabs for collapsed tab bar (fix #404) 2012-11-14 13:14:15 +09:00
Piro / YUKI Hiroshi
450fa34790 Simplify codes to load modules lazily 2012-11-11 22:48:42 +09:00
Piro / YUKI Hiroshi
3577111d0b Don't hide closeboxes of other tabs when toolbars are shown/hidden (Update floating tab bar before calling of adjustTabstrip(), because floating tab bar is unexpectedly resized to smallest size on the time) 2012-11-08 20:07:03 +09:00
Piro / YUKI Hiroshi
af4fb9e426 Update reference for getTreePref 2012-10-31 23:03:50 +09:00
Piro / YUKI Hiroshi
66e2e268f5 .utils => .base 2012-10-30 03:11:39 +09:00
YUKI Hiroshi
c0e9280444 Shorten "TSTUtils" to "utils" (because they are already in the context) 2012-10-24 01:43:56 +09:00
saneyuki_s
3e658380c9 Move some pref methods from TSTBase to TSTUtils. 2012-10-19 23:20:08 +09:00
Piro / YUKI Hiroshi
9182259ab5 Update credit 2012-10-14 03:31:06 +09:00
Piro / YUKI Hiroshi
d66b7083d2 Add line breaks for dynamic patches 2012-10-13 02:24:02 +09:00
YUKI Hiroshi
83626af553 Reduce use of <![CDATA[ ... ]]> 2012-10-12 16:46:37 +09:00
Piro / YUKI Hiroshi
bf068dfdab Fix broken tree which can appear after a tab is duplicated as a child of the original tab 2012-09-23 17:59:19 +09:00
Piro / YUKI Hiroshi
7ffe6709d2 Add failsafe for unexpectedly stored tab attribute "tabbrowser-id" 2012-09-23 17:19:09 +09:00
Piro / YUKI Hiroshi
6f157657bc Fix syntax error 2012-09-23 16:13:35 +09:00
Piro / YUKI Hiroshi
e5d4e509e3 Fix syntax error 2012-09-23 16:13:01 +09:00
Piro / YUKI Hiroshi
3b692b4de4 Reduce usecases of evaluateXPath() 2012-09-23 16:11:03 +09:00
Piro / YUKI Hiroshi
a6792a2b4b Reduce usecases of evaluateXPath() 2012-09-23 15:43:49 +09:00
saneyuki_s
3941b88b1f Remove TreeStyleTabUtils.ObserverService. 2012-09-18 00:31:48 +09:00
Piro / YUKI Hiroshi
d7121d9042 Simplify codes dynamically inserted by eval() 2012-09-15 12:09:15 +09:00
Piro / YUKI Hiroshi
1aa4f0e97a Rename preferences for vertical tab bar with the suffix ".vertical" 2012-08-31 03:48:00 +09:00