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

Unified Diff: chrome/browser/ui/gtk/tabs/tab_gtk.cc

Issue 6933037: Multi-tab selection for Linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing context menu commands Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/gtk/tabs/tab_gtk.h ('k') | chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/gtk/tabs/tab_gtk.cc
diff --git a/chrome/browser/ui/gtk/tabs/tab_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_gtk.cc
index d5cdd31a593c45546320cedbed407218c3d7c2ef..9dbd7df4cd789a1636089403af91164d8f938798 100644
--- a/chrome/browser/ui/gtk/tabs/tab_gtk.cc
+++ b/chrome/browser/ui/gtk/tabs/tab_gtk.cc
@@ -36,7 +36,8 @@ class TabGtk::ContextMenuController : public ui::SimpleMenuModel::Delegate,
public:
explicit ContextMenuController(TabGtk* tab)
: tab_(tab),
- model_(this, tab->delegate()->IsTabPinned(tab)) {
+ model_(this, tab->delegate()->model(),
+ tab->delegate()->GetIndexOfTab(const_cast<const TabGtk*>(tab))) {
dpapad 2011/05/10 16:28:14 This is the hacky part. In order to invoke the des
menu_.reset(new MenuGtk(this, &model_));
}
@@ -176,11 +177,16 @@ gboolean TabGtk::OnButtonPressEvent(GtkWidget* widget, GdkEventButton* event) {
// Store whether or not we were selected just now... we only want to be
// able to drag foreground tabs, so we don't start dragging the tab if
// it was in the background.
- bool just_selected = !IsSelected();
- if (just_selected) {
- delegate_->SelectTab(this);
+ if (!IsActive() && (event->state & 5) == 0) {
+ delegate_->ActivateTab(this);
+ } else if (!IsActive() && (event->state & 4) == 4) {
+ // TODO(dpapad)
+ NOTIMPLEMENTED() << " Multi tab selection ctrl click under construction";
+ delegate_->ToggleTabSelection(this);
+ } else if (!IsActive() && (event->state & 1) == 1) {
+ NOTIMPLEMENTED() << " Multi tab selection shift click under construction";
+ delegate_->ExtendTabSelection(this);
}
-
// Hook into the message loop to handle dragging.
observer_.reset(new TabGtkObserverHelper(this));
@@ -293,6 +299,10 @@ void TabGtk::DidProcessEvent(GdkEvent* event) {
///////////////////////////////////////////////////////////////////////////////
// TabGtk, TabRendererGtk overrides:
+bool TabGtk::IsActive() const {
+ return delegate_->IsTabActive(this);
+}
+
bool TabGtk::IsSelected() const {
return delegate_->IsTabSelected(this);
}
« no previous file with comments | « chrome/browser/ui/gtk/tabs/tab_gtk.h ('k') | chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698