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

Side by Side Diff: chrome/browser/ui/panels/panel_browser_window_gtk.cc

Issue 10066032: Enable user resizing for docked Panels (GTK and Mac). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor cleanup Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/panels/panel_browser_window_gtk.h" 5 #include "chrome/browser/ui/panels/panel_browser_window_gtk.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "chrome/browser/ui/browser_list.h" 8 #include "chrome/browser/ui/browser_list.h"
9 #include "chrome/browser/ui/gtk/browser_titlebar.h" 9 #include "chrome/browser/ui/gtk/browser_titlebar.h"
10 #include "chrome/browser/ui/panels/panel.h" 10 #include "chrome/browser/ui/panels/panel.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 this, 102 this,
103 chrome::NOTIFICATION_WINDOW_CLOSED, 103 chrome::NOTIFICATION_WINDOW_CLOSED,
104 content::Source<GtkWindow>(window())); 104 content::Source<GtkWindow>(window()));
105 } 105 }
106 106
107 bool PanelBrowserWindowGtk::GetWindowEdge(int x, int y, GdkWindowEdge* edge) { 107 bool PanelBrowserWindowGtk::GetWindowEdge(int x, int y, GdkWindowEdge* edge) {
108 // Only detect the window edge when panels can be resized by the user. 108 // Only detect the window edge when panels can be resized by the user.
109 // This method is used by the base class to detect when the cursor has 109 // This method is used by the base class to detect when the cursor has
110 // hit the window edge in order to change the cursor to a resize cursor 110 // hit the window edge in order to change the cursor to a resize cursor
111 // and to detect when to initiate a resize drag. 111 // and to detect when to initiate a resize drag.
112 return panel_->CanResizeByMouse() ? 112 panel::Resizability resizability = panel_->CanResizeByMouse();
113 BrowserWindowGtk::GetWindowEdge(x, y, edge) : FALSE; 113 if (panel::NOT_RESIZABLE == resizability)
114 return false;
115
116 if (!BrowserWindowGtk::GetWindowEdge(x, y, edge))
117 return FALSE;
118
119 // Special handling if bottom edge is not resizable.
120 if (panel::ALL_SIDES_EXCEPT_BOTTOM == resizability) {
121 if (*edge == GDK_WINDOW_EDGE_SOUTH)
122 return FALSE;
123 if (*edge == GDK_WINDOW_EDGE_SOUTH_WEST)
124 *edge = GDK_WINDOW_EDGE_WEST;
125 else if (*edge == GDK_WINDOW_EDGE_SOUTH_EAST)
126 *edge = GDK_WINDOW_EDGE_EAST;
127 }
128
129 return TRUE;
114 } 130 }
115 131
116 void PanelBrowserWindowGtk::EnsureDragHelperCreated() { 132 void PanelBrowserWindowGtk::EnsureDragHelperCreated() {
117 if (drag_helper_.get()) 133 if (drag_helper_.get())
118 return; 134 return;
119 135
120 drag_helper_.reset(new PanelDragGtk(panel_.get())); 136 drag_helper_.reset(new PanelDragGtk(panel_.get()));
121 gtk_box_pack_end(GTK_BOX(window_vbox_), drag_helper_->widget(), 137 gtk_box_pack_end(GTK_BOX(window_vbox_), drag_helper_->widget(),
122 FALSE, FALSE, 0); 138 FALSE, FALSE, 0);
123 } 139 }
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 MessageLoopForUI::current()->RunAllPending(); 946 MessageLoopForUI::current()->RunAllPending();
931 } 947 }
932 948
933 bool NativePanelTestingGtk::IsWindowSizeKnown() const { 949 bool NativePanelTestingGtk::IsWindowSizeKnown() const {
934 return !panel_browser_window_gtk_->frame_size_.IsEmpty(); 950 return !panel_browser_window_gtk_->frame_size_.IsEmpty();
935 } 951 }
936 952
937 bool NativePanelTestingGtk::IsAnimatingBounds() const { 953 bool NativePanelTestingGtk::IsAnimatingBounds() const {
938 return panel_browser_window_gtk_->IsAnimatingBounds(); 954 return panel_browser_window_gtk_->IsAnimatingBounds();
939 } 955 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698