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

Side by Side Diff: chrome/browser/ui/views/panels/panel_view.cc

Issue 333593003: Make panels have their own shelf item in Unity (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/views/panels/panel_view.h" 5 #include "chrome/browser/ui/views/panels/panel_view.h"
6 6
7 #include <map> 7 #include <map>
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 21 matching lines...) Expand all
32 #if defined(OS_WIN) 32 #if defined(OS_WIN)
33 #include "base/win/windows_version.h" 33 #include "base/win/windows_version.h"
34 #include "chrome/browser/shell_integration.h" 34 #include "chrome/browser/shell_integration.h"
35 #include "chrome/browser/ui/views/panels/taskbar_window_thumbnailer_win.h" 35 #include "chrome/browser/ui/views/panels/taskbar_window_thumbnailer_win.h"
36 #include "ui/base/win/shell.h" 36 #include "ui/base/win/shell.h"
37 #include "ui/gfx/icon_util.h" 37 #include "ui/gfx/icon_util.h"
38 #include "ui/views/win/hwnd_util.h" 38 #include "ui/views/win/hwnd_util.h"
39 #endif 39 #endif
40 40
41 #if defined(USE_X11) && !defined(OS_CHROMEOS) 41 #if defined(USE_X11) && !defined(OS_CHROMEOS)
42 #include "chrome/browser/shell_integration_linux.h"
42 #include "chrome/browser/ui/views/panels/x11_panel_resizer.h" 43 #include "chrome/browser/ui/views/panels/x11_panel_resizer.h"
44 #include "chrome/browser/web_applications/web_app.h"
43 #include "ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h" 45 #include "ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h"
44 #endif 46 #endif
45 47
46 namespace { 48 namespace {
47 49
48 #if defined(OS_WIN) 50 #if defined(OS_WIN)
49 // If the height of a stacked panel shrinks below this threshold during the 51 // If the height of a stacked panel shrinks below this threshold during the
50 // user resizing, it will be treated as minimized. 52 // user resizing, it will be treated as minimized.
51 const int kStackedPanelHeightShrinkThresholdToBecomeMinimized = 53 const int kStackedPanelHeightShrinkThresholdToBecomeMinimized =
52 panel::kTitlebarHeight + 20; 54 panel::kTitlebarHeight + 20;
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 is_drawing_attention_(false), 280 is_drawing_attention_(false),
279 force_to_paint_as_inactive_(false), 281 force_to_paint_as_inactive_(false),
280 old_focused_view_(NULL) { 282 old_focused_view_(NULL) {
281 window_ = new views::Widget; 283 window_ = new views::Widget;
282 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); 284 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
283 params.delegate = this; 285 params.delegate = this;
284 params.remove_standard_frame = true; 286 params.remove_standard_frame = true;
285 params.keep_on_top = always_on_top; 287 params.keep_on_top = always_on_top;
286 params.visible_on_all_workspaces = always_on_top; 288 params.visible_on_all_workspaces = always_on_top;
287 params.bounds = bounds; 289 params.bounds = bounds;
290
291 #if defined(USE_X11) && !defined(OS_CHROMEOS)
292 params.wm_class_name = web_app::GetWMClassFromAppName(panel->app_name());
293 params.wm_class_class = shell_integration_linux::GetProgramClassName();
294 #endif
295
288 window_->Init(params); 296 window_->Init(params);
289 window_->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM); 297 window_->set_frame_type(views::Widget::FRAME_TYPE_FORCE_CUSTOM);
290 window_->set_focus_on_creation(false); 298 window_->set_focus_on_creation(false);
291 window_->AddObserver(this); 299 window_->AddObserver(this);
292 300
293 // Prevent the browser process from shutting down while this window is open. 301 // Prevent the browser process from shutting down while this window is open.
294 keep_alive_.reset(new AutoKeepAlive(GetNativePanelWindow())); 302 keep_alive_.reset(new AutoKeepAlive(GetNativePanelWindow()));
295 303
296 web_view_ = new views::WebView(NULL); 304 web_view_ = new views::WebView(NULL);
297 AddChildView(web_view_); 305 AddChildView(web_view_);
(...skipping 846 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 // SWP_FRAMECHANGED flag must be called in order for the cached window data 1152 // SWP_FRAMECHANGED flag must be called in order for the cached window data
1145 // to be updated properly. 1153 // to be updated properly.
1146 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).a spx 1154 // http://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).a spx
1147 if (update_frame) { 1155 if (update_frame) {
1148 ::SetWindowPos(native_window, NULL, 0, 0, 0, 0, 1156 ::SetWindowPos(native_window, NULL, 0, 0, 0, 0,
1149 SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | 1157 SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE |
1150 SWP_NOZORDER | SWP_NOACTIVATE); 1158 SWP_NOZORDER | SWP_NOACTIVATE);
1151 } 1159 }
1152 } 1160 }
1153 #endif 1161 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698