Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Issue 6933037: Multi-tab selection for Linux. (Closed)

Created:
9 years, 7 months ago by dpapad
Modified:
9 years, 5 months ago
CC:
chromium-reviews
Visibility:
Public.

Description

Multi-tab selection for Linux. This CL enables multi-tab selection on Linux (shift+click, ctrl+click and context menu commands). Dragging multiple tabs in not implemented yet (probably on a follow up CL). BUG=30572 TEST=NONE Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=90698

Patch Set 1 #

Patch Set 2 : Enabling crtl click #

Patch Set 3 : Enabling shift click #

Patch Set 4 : Minor renaming #

Patch Set 5 : Fixing selected, not active tab backgroung rendering #

Patch Set 6 : Fixing context menu commands #

Total comments: 1

Patch Set 7 : Refactoring ContextMenuController, context menu commands still work. #

Patch Set 8 : Removing unnecessary includes #

Total comments: 16

Patch Set 9 : Addressing comments #

Patch Set 10 : Removing check, addressing comments #

Total comments: 22

Patch Set 11 : Addressing comments #

Patch Set 12 : Addressing comments #

Patch Set 13 : Addressing comments, rebasing #

Total comments: 8

Patch Set 14 : Nits, fixing comments #

Patch Set 15 : Adding TabSelectionChanged callback and removing unnecessary method #

Total comments: 15

Patch Set 16 : Addressing comments #

Patch Set 17 : Rebasing, modifying TabSelectionChanged arguments, notifying observers when necessary. #

Total comments: 4

Patch Set 18 : Fixing nits #

Total comments: 10

Patch Set 19 : Removing unnecessary check, using shorthand to populate set. #

Patch Set 20 : Rebasing, resolving conflicts #

Patch Set 21 : Removing unused include #

Total comments: 13

Patch Set 22 : Addressing comments #

Patch Set 23 : Addressing comments #

Patch Set 24 : Removing ActiveTabChanged from TabStripGtk #

Total comments: 1

Patch Set 25 : Repainting active and previously active tab explicitly #

Total comments: 1

Patch Set 26 : Addressing comments #

Patch Set 27 : Fixing clang errors #

Unified diffs Side-by-side diffs Delta from patch set Stats (+266 lines, -119 lines) Patch
M chrome/browser/ui/gtk/tabs/tab_gtk.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7 chunks +20 lines, -5 lines 0 comments Download
M chrome/browser/ui/gtk/tabs/tab_gtk.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6 chunks +16 lines, -78 lines 0 comments Download
M chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 7 chunks +12 lines, -6 lines 0 comments Download
M chrome/browser/ui/gtk/tabs/tab_strip_gtk.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 3 chunks +6 lines, -5 lines 0 comments Download
M chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc View 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 16 chunks +74 lines, -25 lines 0 comments Download
A chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h View 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 1 chunk +61 lines, -0 lines 0 comments Download
A chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc View 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 1 chunk +72 lines, -0 lines 0 comments Download
M chrome/chrome_browser.gypi View 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 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 44 (0 generated)
dpapad
http://codereview.chromium.org/6933037/diff/11001/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/11001/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode40 chrome/browser/ui/gtk/tabs/tab_gtk.cc:40: tab->delegate()->GetIndexOfTab(const_cast<const TabGtk*>(tab))) { This is the hacky part. In ...
9 years, 7 months ago (2011-05-10 16:28:14 UTC) #1
Evan Stade
probably best to match what sky did on Views, which was to refactor the context ...
9 years, 7 months ago (2011-05-10 16:40:46 UTC) #2
dpapad
On 2011/05/10 16:40:46, Evan Stade wrote: > probably best to match what sky did on ...
9 years, 7 months ago (2011-05-10 16:43:09 UTC) #3
dpapad
9 years, 7 months ago (2011-05-10 20:36:51 UTC) #4
dpapad
9 years, 7 months ago (2011-05-10 21:27:28 UTC) #5
Evan Stade
http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc File chrome/browser/ui/gtk/tabs/context_menu_controller.cc (right): http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc#newcode12 chrome/browser/ui/gtk/tabs/context_menu_controller.cc:12: ContextMenuController::ContextMenuController(TabGtk* tab, this class should probably be TabStripContextMenuController now ...
9 years, 7 months ago (2011-05-11 20:58:27 UTC) #6
dpapad
http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc File chrome/browser/ui/gtk/tabs/context_menu_controller.cc (right): http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc#newcode12 chrome/browser/ui/gtk/tabs/context_menu_controller.cc:12: ContextMenuController::ContextMenuController(TabGtk* tab, On 2011/05/11 20:58:27, Evan Stade wrote: > ...
9 years, 7 months ago (2011-05-11 23:30:20 UTC) #7
Evan Stade
http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc File chrome/browser/ui/gtk/tabs/context_menu_controller.cc (right): http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc#newcode56 chrome/browser/ui/gtk/tabs/context_menu_controller.cc:56: if (!tab_) so I guess it depends on whether ...
9 years, 7 months ago (2011-05-12 00:05:27 UTC) #8
dpapad
http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc File chrome/browser/ui/gtk/tabs/context_menu_controller.cc (right): http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc#newcode56 chrome/browser/ui/gtk/tabs/context_menu_controller.cc:56: if (!tab_) On 2011/05/12 00:05:27, Evan Stade wrote: > ...
9 years, 7 months ago (2011-05-12 00:34:25 UTC) #9
Evan Stade
On 2011/05/12 00:34:25, dpapad wrote: > http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc > File chrome/browser/ui/gtk/tabs/context_menu_controller.cc (right): > > http://codereview.chromium.org/6933037/diff/19001/chrome/browser/ui/gtk/tabs/context_menu_controller.cc#newcode56 > ...
9 years, 7 months ago (2011-05-12 00:45:47 UTC) #10
James Hawkins
http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode107 chrome/browser/ui/gtk/tabs/tab_gtk.cc:107: if (!IsActive() && (event->state & && !(event->state & (GDK_SHIFT_MASK ...
9 years, 7 months ago (2011-05-12 00:53:54 UTC) #11
dpapad
http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode107 chrome/browser/ui/gtk/tabs/tab_gtk.cc:107: if (!IsActive() && (event->state & On 2011/05/12 00:53:54, James ...
9 years, 7 months ago (2011-05-12 16:37:08 UTC) #12
James Hawkins
http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h File chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h (right): http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h#newcode46 chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h:46: TabGtk* tab_; On 2011/05/12 16:37:08, dpapad wrote: > On ...
9 years, 7 months ago (2011-05-12 16:49:48 UTC) #13
dpapad
http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h File chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h (right): http://codereview.chromium.org/6933037/diff/27001/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h#newcode46 chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.h:46: TabGtk* tab_; On 2011/05/12 16:49:48, James Hawkins wrote: > ...
9 years, 7 months ago (2011-05-12 17:21:49 UTC) #14
Evan Stade
lgtm http://codereview.chromium.org/6933037/diff/28011/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/28011/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode107 chrome/browser/ui/gtk/tabs/tab_gtk.cc:107: if (!IsActive() && !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK))) ...
9 years, 7 months ago (2011-05-12 17:57:19 UTC) #15
James Hawkins
http://codereview.chromium.org/6933037/diff/28011/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc File chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc (right): http://codereview.chromium.org/6933037/diff/28011/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc#newcode56 chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc:56: if (!tab_) I looked into this. This logic was ...
9 years, 7 months ago (2011-05-12 18:54:18 UTC) #16
dpapad
http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode107 chrome/browser/ui/gtk/tabs/tab_gtk.cc:107: if (!IsActive()) { Done. http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc File chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc (right): http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_strip_menu_controller.cc#newcode58 ...
9 years, 7 months ago (2011-05-12 21:53:19 UTC) #17
James Hawkins
LGTM. http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode108 chrome/browser/ui/gtk/tabs/tab_gtk.cc:108: if (!(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK))) This logic ...
9 years, 7 months ago (2011-05-12 21:59:52 UTC) #18
dpapad
http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_gtk.cc File chrome/browser/ui/gtk/tabs/tab_gtk.cc (right): http://codereview.chromium.org/6933037/diff/23009/chrome/browser/ui/gtk/tabs/tab_gtk.cc#newcode108 chrome/browser/ui/gtk/tabs/tab_gtk.cc:108: if (!(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK))) On 2011/05/12 21:59:52, ...
9 years, 7 months ago (2011-05-12 22:31:38 UTC) #19
James Hawkins
http://codereview.chromium.org/6933037/diff/26025/chrome/browser/tabs/tab_strip_model.cc File chrome/browser/tabs/tab_strip_model.cc (right): http://codereview.chromium.org/6933037/diff/26025/chrome/browser/tabs/tab_strip_model.cc#newcode572 chrome/browser/tabs/tab_strip_model.cc:572: std::vector<int> old_selected_indices( nit: You use indices here and indexes ...
9 years, 7 months ago (2011-05-18 18:03:10 UTC) #20
dpapad
http://codereview.chromium.org/6933037/diff/26025/chrome/browser/tabs/tab_strip_model.cc File chrome/browser/tabs/tab_strip_model.cc (right): http://codereview.chromium.org/6933037/diff/26025/chrome/browser/tabs/tab_strip_model.cc#newcode572 chrome/browser/tabs/tab_strip_model.cc:572: std::vector<int> old_selected_indices( On 2011/05/18 18:03:10, James Hawkins wrote: > ...
9 years, 6 months ago (2011-06-01 18:05:41 UTC) #21
James Hawkins
LGTM with nits. http://codereview.chromium.org/6933037/diff/44002/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc File chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc (right): http://codereview.chromium.org/6933037/diff/44002/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc#newcode1044 chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1044: size_t i = 0; nit: Move ...
9 years, 6 months ago (2011-06-01 18:20:40 UTC) #22
dpapad
http://codereview.chromium.org/6933037/diff/44002/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc File chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc (right): http://codereview.chromium.org/6933037/diff/44002/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc#newcode1044 chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1044: size_t i = 0; On 2011/06/01 18:20:40, James Hawkins ...
9 years, 6 months ago (2011-06-01 18:30:49 UTC) #23
dpapad
Addressing estade's comments (he commented them in person).
9 years, 6 months ago (2011-06-01 20:55:32 UTC) #24
sky
http://codereview.chromium.org/6933037/diff/40013/chrome/browser/tabs/tab_strip_model_observer.h File chrome/browser/tabs/tab_strip_model_observer.h (right): http://codereview.chromium.org/6933037/diff/40013/chrome/browser/tabs/tab_strip_model_observer.h#newcode84 chrome/browser/tabs/tab_strip_model_observer.h:84: virtual void TabSelectionChanged(const std::vector<int>& previously_selected, Add test coverage of ...
9 years, 6 months ago (2011-06-01 20:56:04 UTC) #25
dpapad
http://codereview.chromium.org/6933037/diff/40013/chrome/browser/tabs/tab_strip_model_observer.h File chrome/browser/tabs/tab_strip_model_observer.h (right): http://codereview.chromium.org/6933037/diff/40013/chrome/browser/tabs/tab_strip_model_observer.h#newcode84 chrome/browser/tabs/tab_strip_model_observer.h:84: virtual void TabSelectionChanged(const std::vector<int>& previously_selected, On 2011/06/01 20:56:04, sky ...
9 years, 6 months ago (2011-06-02 00:28:22 UTC) #26
sky
http://codereview.chromium.org/6933037/diff/40013/chrome/browser/tabs/tab_strip_model_observer.h File chrome/browser/tabs/tab_strip_model_observer.h (right): http://codereview.chromium.org/6933037/diff/40013/chrome/browser/tabs/tab_strip_model_observer.h#newcode84 chrome/browser/tabs/tab_strip_model_observer.h:84: virtual void TabSelectionChanged(const std::vector<int>& previously_selected, On 2011/06/02 00:28:22, dpapad ...
9 years, 6 months ago (2011-06-02 16:07:14 UTC) #27
dpapad
> I think it would be best to separate out the model changes into a ...
9 years, 6 months ago (2011-06-02 17:02:10 UTC) #28
sky
On 2011/06/02 17:02:10, dpapad wrote: > > I think it would be best to separate ...
9 years, 6 months ago (2011-06-02 17:08:59 UTC) #29
sky
> All remaining occurrences that did not > have this check were accessing the parameters ...
9 years, 6 months ago (2011-06-02 23:57:24 UTC) #30
dpapad
On Thu, Jun 2, 2011 at 4:57 PM, <sky@chromium.org> wrote: > All remaining occurrences that ...
9 years, 6 months ago (2011-06-03 00:54:45 UTC) #31
dpapad
After landing http://codereview.chromium.org/7215003/, I rebased this CL and made it use the new notification TabStripModelObserver::TabSelectionChanged().
9 years, 6 months ago (2011-06-23 17:42:26 UTC) #32
James Hawkins
SLGTM http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc File chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc (right): http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc#newcode1051 chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1051: it != indices_affected.end(); ++it) nit: Indentation looks off ...
9 years, 6 months ago (2011-06-23 18:08:26 UTC) #33
sky
LGTM http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc File chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc (right): http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc#newcode442 chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc:442: // The selected tab clips favicon before close ...
9 years, 6 months ago (2011-06-23 18:14:03 UTC) #34
dpapad
http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc File chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc (right): http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc#newcode442 chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc:442: // The selected tab clips favicon before close button. ...
9 years, 6 months ago (2011-06-23 19:56:02 UTC) #35
sky
> http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc#newcode1050 > chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1050: for > (std::vector<int>::iterator it = indices_affected.begin(); > On 2011/06/23 18:14:03, sky ...
9 years, 6 months ago (2011-06-23 20:19:41 UTC) #36
dpapad
On 2011/06/23 20:19:41, sky wrote: > > > http://codereview.chromium.org/6933037/diff/55001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc#newcode1050 > > chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1050: for > > ...
9 years, 6 months ago (2011-06-24 16:01:24 UTC) #37
sky
On 2011/06/24 16:01:24, dpapad wrote: > On 2011/06/23 20:19:41, sky wrote: > > > > ...
9 years, 6 months ago (2011-06-24 16:21:28 UTC) #38
dpapad
http://codereview.chromium.org/6933037/diff/62001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc File chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc (right): http://codereview.chromium.org/6933037/diff/62001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc#newcode1028 chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1028: std::set_symmetric_difference( Done. I see one issue here. Since there ...
9 years, 6 months ago (2011-06-24 20:17:16 UTC) #39
sky
On Fri, Jun 24, 2011 at 1:17 PM, <dpapad@chromium.org> wrote: > > http://codereview.chromium.org/6933037/diff/62001/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc > File ...
9 years, 6 months ago (2011-06-24 20:46:31 UTC) #40
dpapad
On 2011/06/24 20:46:31, sky wrote: > On Fri, Jun 24, 2011 at 1:17 PM, <mailto:dpapad@chromium.org> ...
9 years, 6 months ago (2011-06-24 22:12:04 UTC) #41
sky
On 2011/06/24 22:12:04, dpapad wrote: > On 2011/06/24 20:46:31, sky wrote: > > On Fri, ...
9 years, 6 months ago (2011-06-24 22:26:40 UTC) #42
dpapad
I chose to perform the task in TabSelectionChanged. It is always triggered when ActiveTabChanged triggers, ...
9 years, 6 months ago (2011-06-25 01:23:06 UTC) #43
sky
9 years, 6 months ago (2011-06-27 14:28:52 UTC) #44
LGTM

http://codereview.chromium.org/6933037/diff/66004/chrome/browser/ui/gtk/tabs/...
File chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc (right):

http://codereview.chromium.org/6933037/diff/66004/chrome/browser/ui/gtk/tabs/...
chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc:1025:
GetTabAt(model_->active_index())->SchedulePaint();
I think you should verify this is >= 0 too.

Powered by Google App Engine
This is Rietveld 408576698