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

Side by Side Diff: chrome/browser/ui/gtk/browser_window_gtk.cc

Issue 8769017: GTK: Move CairoCachedSurface from being owned by GtkThemeService to gfx::Image. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 9 years 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/gtk/browser_window_gtk.h" 5 #include "chrome/browser/ui/gtk/browser_window_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 8
9 #include <dlfcn.h> 9 #include <dlfcn.h>
10 #include <string> 10 #include <string>
(...skipping 28 matching lines...) Expand all
39 #include "chrome/browser/ui/browser_list.h" 39 #include "chrome/browser/ui/browser_list.h"
40 #include "chrome/browser/ui/find_bar/find_bar_controller.h" 40 #include "chrome/browser/ui/find_bar/find_bar_controller.h"
41 #include "chrome/browser/ui/find_bar/find_tab_helper.h" 41 #include "chrome/browser/ui/find_bar/find_tab_helper.h"
42 #include "chrome/browser/ui/gtk/about_chrome_dialog.h" 42 #include "chrome/browser/ui/gtk/about_chrome_dialog.h"
43 #include "chrome/browser/ui/gtk/accelerators_gtk.h" 43 #include "chrome/browser/ui/gtk/accelerators_gtk.h"
44 #include "chrome/browser/ui/gtk/avatar_menu_button_gtk.h" 44 #include "chrome/browser/ui/gtk/avatar_menu_button_gtk.h"
45 #include "chrome/browser/ui/gtk/avatar_menu_bubble_gtk.h" 45 #include "chrome/browser/ui/gtk/avatar_menu_bubble_gtk.h"
46 #include "chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h" 46 #include "chrome/browser/ui/gtk/bookmarks/bookmark_bar_gtk.h"
47 #include "chrome/browser/ui/gtk/browser_titlebar.h" 47 #include "chrome/browser/ui/gtk/browser_titlebar.h"
48 #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h" 48 #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h"
49 #include "chrome/browser/ui/gtk/cairo_cached_surface.h"
50 #include "chrome/browser/ui/gtk/collected_cookies_gtk.h" 49 #include "chrome/browser/ui/gtk/collected_cookies_gtk.h"
51 #include "chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h" 50 #include "chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h"
52 #include "chrome/browser/ui/gtk/download/download_in_progress_dialog_gtk.h" 51 #include "chrome/browser/ui/gtk/download/download_in_progress_dialog_gtk.h"
53 #include "chrome/browser/ui/gtk/download/download_shelf_gtk.h" 52 #include "chrome/browser/ui/gtk/download/download_shelf_gtk.h"
54 #include "chrome/browser/ui/gtk/edit_search_engine_dialog.h" 53 #include "chrome/browser/ui/gtk/edit_search_engine_dialog.h"
55 #include "chrome/browser/ui/gtk/find_bar_gtk.h" 54 #include "chrome/browser/ui/gtk/find_bar_gtk.h"
56 #include "chrome/browser/ui/gtk/fullscreen_exit_bubble_gtk.h" 55 #include "chrome/browser/ui/gtk/fullscreen_exit_bubble_gtk.h"
57 #include "chrome/browser/ui/gtk/global_menu_bar.h" 56 #include "chrome/browser/ui/gtk/global_menu_bar.h"
58 #include "chrome/browser/ui/gtk/gtk_theme_service.h" 57 #include "chrome/browser/ui/gtk/gtk_theme_service.h"
59 #include "chrome/browser/ui/gtk/gtk_util.h" 58 #include "chrome/browser/ui/gtk/gtk_util.h"
(...skipping 30 matching lines...) Expand all
90 #include "grit/generated_resources.h" 89 #include "grit/generated_resources.h"
91 #include "grit/theme_resources.h" 90 #include "grit/theme_resources.h"
92 #include "grit/theme_resources_standard.h" 91 #include "grit/theme_resources_standard.h"
93 #include "grit/ui_resources.h" 92 #include "grit/ui_resources.h"
94 #include "ui/base/gtk/gtk_floating_container.h" 93 #include "ui/base/gtk/gtk_floating_container.h"
95 #include "ui/base/gtk/gtk_hig_constants.h" 94 #include "ui/base/gtk/gtk_hig_constants.h"
96 #include "ui/base/keycodes/keyboard_codes.h" 95 #include "ui/base/keycodes/keyboard_codes.h"
97 #include "ui/base/l10n/l10n_util.h" 96 #include "ui/base/l10n/l10n_util.h"
98 #include "ui/base/x/active_window_watcher_x.h" 97 #include "ui/base/x/active_window_watcher_x.h"
99 #include "ui/gfx/gtk_util.h" 98 #include "ui/gfx/gtk_util.h"
99 #include "ui/gfx/image/cairo_cached_surface.h"
100 #include "ui/gfx/rect.h" 100 #include "ui/gfx/rect.h"
101 #include "ui/gfx/skia_utils_gtk.h" 101 #include "ui/gfx/skia_utils_gtk.h"
102 102
103 namespace { 103 namespace {
104 104
105 // The number of milliseconds between loading animation frames. 105 // The number of milliseconds between loading animation frames.
106 const int kLoadingAnimationFrameTimeMs = 30; 106 const int kLoadingAnimationFrameTimeMs = 30;
107 107
108 // Minimal height of devotools pane or content pane when devtools are docked 108 // Minimal height of devotools pane or content pane when devtools are docked
109 // to the browser window. 109 // to the browser window.
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 void BrowserWindowGtk::DrawContentShadow(cairo_t* cr) { 446 void BrowserWindowGtk::DrawContentShadow(cairo_t* cr) {
447 // Draw the shadow above the toolbar. Tabs on the tabstrip will draw over us. 447 // Draw the shadow above the toolbar. Tabs on the tabstrip will draw over us.
448 GtkThemeService* theme_provider = GtkThemeService::GetFrom( 448 GtkThemeService* theme_provider = GtkThemeService::GetFrom(
449 browser()->profile()); 449 browser()->profile());
450 int left_x, top_y; 450 int left_x, top_y;
451 gtk_widget_translate_coordinates(toolbar_->widget(), 451 gtk_widget_translate_coordinates(toolbar_->widget(),
452 GTK_WIDGET(window_), 0, 0, &left_x, 452 GTK_WIDGET(window_), 0, 0, &left_x,
453 &top_y); 453 &top_y);
454 int center_width = window_vbox_->allocation.width; 454 int center_width = window_vbox_->allocation.width;
455 455
456 CairoCachedSurface* top_center = theme_provider->GetSurfaceNamed( 456 gfx::CairoCachedSurface* top_center = theme_provider->GetSurfaceNamed(
457 IDR_CONTENT_TOP_CENTER, GTK_WIDGET(window_)); 457 IDR_CONTENT_TOP_CENTER, GTK_WIDGET(window_));
458 CairoCachedSurface* top_right = theme_provider->GetSurfaceNamed( 458 gfx::CairoCachedSurface* top_right = theme_provider->GetSurfaceNamed(
459 IDR_CONTENT_TOP_RIGHT_CORNER, GTK_WIDGET(window_)); 459 IDR_CONTENT_TOP_RIGHT_CORNER, GTK_WIDGET(window_));
460 CairoCachedSurface* top_left = theme_provider->GetSurfaceNamed( 460 gfx::CairoCachedSurface* top_left = theme_provider->GetSurfaceNamed(
461 IDR_CONTENT_TOP_LEFT_CORNER, GTK_WIDGET(window_)); 461 IDR_CONTENT_TOP_LEFT_CORNER, GTK_WIDGET(window_));
462 462
463 int center_left_x = left_x; 463 int center_left_x = left_x;
464 if (ShouldDrawContentDropShadow()) { 464 if (ShouldDrawContentDropShadow()) {
465 // Don't draw over the corners. 465 // Don't draw over the corners.
466 center_left_x += top_left->Width() - kContentShadowThickness; 466 center_left_x += top_left->Width() - kContentShadowThickness;
467 center_width -= (top_left->Width() + top_right->Width()); 467 center_width -= (top_left->Width() + top_right->Width());
468 center_width += 2 * kContentShadowThickness; 468 center_width += 2 * kContentShadowThickness;
469 } 469 }
470 470
471 top_center->SetSource(cr, center_left_x, top_y - kContentShadowThickness); 471 top_center->SetSource(cr, GTK_WIDGET(window_),
472 center_left_x, top_y - kContentShadowThickness);
472 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); 473 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
473 cairo_rectangle(cr, center_left_x, top_y - kContentShadowThickness, 474 cairo_rectangle(cr, center_left_x, top_y - kContentShadowThickness,
474 center_width, top_center->Height()); 475 center_width, top_center->Height());
475 cairo_fill(cr); 476 cairo_fill(cr);
476 477
477 // Only draw the rest of the shadow if the user has the custom frame enabled 478 // Only draw the rest of the shadow if the user has the custom frame enabled
478 // and the browser is not maximized. 479 // and the browser is not maximized.
479 if (!ShouldDrawContentDropShadow()) 480 if (!ShouldDrawContentDropShadow())
480 return; 481 return;
481 482
482 // The top left corner has a width of 3 pixels. On Windows, the last column 483 // The top left corner has a width of 3 pixels. On Windows, the last column
483 // of pixels overlap the toolbar. We just crop it off on Linux. The top 484 // of pixels overlap the toolbar. We just crop it off on Linux. The top
484 // corners extend to the base of the toolbar (one pixel above the dividing 485 // corners extend to the base of the toolbar (one pixel above the dividing
485 // line). 486 // line).
486 int right_x = center_left_x + center_width; 487 int right_x = center_left_x + center_width;
487 top_left->SetSource( 488 top_left->SetSource(cr, GTK_WIDGET(window_),
488 cr, left_x - kContentShadowThickness, top_y - kContentShadowThickness); 489 left_x - kContentShadowThickness, top_y - kContentShadowThickness);
489 // The toolbar is shorter in location bar only mode so clip the image to the 490 // The toolbar is shorter in location bar only mode so clip the image to the
490 // height of the toolbar + the amount of shadow above the toolbar. 491 // height of the toolbar + the amount of shadow above the toolbar.
491 cairo_rectangle(cr, 492 cairo_rectangle(cr,
492 left_x - kContentShadowThickness, 493 left_x - kContentShadowThickness,
493 top_y - kContentShadowThickness, 494 top_y - kContentShadowThickness,
494 top_left->Width(), 495 top_left->Width(),
495 top_left->Height()); 496 top_left->Height());
496 cairo_fill(cr); 497 cairo_fill(cr);
497 498
498 // Likewise, we crop off the left column of pixels for the top right corner. 499 // Likewise, we crop off the left column of pixels for the top right corner.
499 top_right->SetSource(cr, right_x, top_y - kContentShadowThickness); 500 top_right->SetSource(cr, GTK_WIDGET(window_),
501 right_x, top_y - kContentShadowThickness);
500 cairo_rectangle(cr, 502 cairo_rectangle(cr,
501 right_x, 503 right_x,
502 top_y - kContentShadowThickness, 504 top_y - kContentShadowThickness,
503 top_right->Width(), 505 top_right->Width(),
504 top_right->Height()); 506 top_right->Height());
505 cairo_fill(cr); 507 cairo_fill(cr);
506 508
507 // Fill in the sides. As above, we only draw 2 of the 3 columns on Linux. 509 // Fill in the sides. As above, we only draw 2 of the 3 columns on Linux.
508 int bottom_y; 510 int bottom_y;
509 gtk_widget_translate_coordinates(window_vbox_, 511 gtk_widget_translate_coordinates(window_vbox_,
510 GTK_WIDGET(window_), 512 GTK_WIDGET(window_),
511 0, window_vbox_->allocation.height, 513 0, window_vbox_->allocation.height,
512 NULL, &bottom_y); 514 NULL, &bottom_y);
513 // |side_y| is where to start drawing the side shadows. The top corners draw 515 // |side_y| is where to start drawing the side shadows. The top corners draw
514 // the sides down to the bottom of the toolbar. 516 // the sides down to the bottom of the toolbar.
515 int side_y = top_y - kContentShadowThickness + top_right->Height(); 517 int side_y = top_y - kContentShadowThickness + top_right->Height();
516 // |side_height| is how many pixels to draw for the side borders. We do one 518 // |side_height| is how many pixels to draw for the side borders. We do one
517 // pixel before the bottom of the web contents because that extra pixel is 519 // pixel before the bottom of the web contents because that extra pixel is
518 // drawn by the bottom corners. 520 // drawn by the bottom corners.
519 int side_height = bottom_y - side_y - 1; 521 int side_height = bottom_y - side_y - 1;
520 if (side_height > 0) { 522 if (side_height > 0) {
521 CairoCachedSurface* left = theme_provider->GetSurfaceNamed( 523 gfx::CairoCachedSurface* left = theme_provider->GetSurfaceNamed(
522 IDR_CONTENT_LEFT_SIDE, GTK_WIDGET(window_)); 524 IDR_CONTENT_LEFT_SIDE, GTK_WIDGET(window_));
523 left->SetSource(cr, left_x - kContentShadowThickness, side_y); 525 left->SetSource(cr, GTK_WIDGET(window_),
526 left_x - kContentShadowThickness, side_y);
524 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); 527 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
525 cairo_rectangle(cr, 528 cairo_rectangle(cr,
526 left_x - kContentShadowThickness, 529 left_x - kContentShadowThickness,
527 side_y, 530 side_y,
528 kContentShadowThickness, 531 kContentShadowThickness,
529 side_height); 532 side_height);
530 cairo_fill(cr); 533 cairo_fill(cr);
531 534
532 CairoCachedSurface* right = theme_provider->GetSurfaceNamed( 535 gfx::CairoCachedSurface* right = theme_provider->GetSurfaceNamed(
533 IDR_CONTENT_RIGHT_SIDE, GTK_WIDGET(window_)); 536 IDR_CONTENT_RIGHT_SIDE, GTK_WIDGET(window_));
534 int right_side_x = 537 int right_side_x =
535 right_x + top_right->Width() - kContentShadowThickness - 1; 538 right_x + top_right->Width() - kContentShadowThickness - 1;
536 right->SetSource(cr, right_side_x, side_y); 539 right->SetSource(cr, GTK_WIDGET(window_), right_side_x, side_y);
537 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); 540 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
538 cairo_rectangle(cr, 541 cairo_rectangle(cr,
539 right_side_x, 542 right_side_x,
540 side_y, 543 side_y,
541 kContentShadowThickness, 544 kContentShadowThickness,
542 side_height); 545 side_height);
543 cairo_fill(cr); 546 cairo_fill(cr);
544 } 547 }
545 548
546 // Draw the bottom corners. The bottom corners also draw the bottom row of 549 // Draw the bottom corners. The bottom corners also draw the bottom row of
547 // pixels of the side shadows. 550 // pixels of the side shadows.
548 CairoCachedSurface* bottom_left = theme_provider->GetSurfaceNamed( 551 gfx::CairoCachedSurface* bottom_left = theme_provider->GetSurfaceNamed(
549 IDR_CONTENT_BOTTOM_LEFT_CORNER, GTK_WIDGET(window_)); 552 IDR_CONTENT_BOTTOM_LEFT_CORNER, GTK_WIDGET(window_));
550 bottom_left->SetSource(cr, left_x - kContentShadowThickness, bottom_y - 1); 553 bottom_left->SetSource(cr, GTK_WIDGET(window_),
554 left_x - kContentShadowThickness, bottom_y - 1);
551 cairo_paint(cr); 555 cairo_paint(cr);
552 556
553 CairoCachedSurface* bottom_right = theme_provider->GetSurfaceNamed( 557 gfx::CairoCachedSurface* bottom_right = theme_provider->GetSurfaceNamed(
554 IDR_CONTENT_BOTTOM_RIGHT_CORNER, GTK_WIDGET(window_)); 558 IDR_CONTENT_BOTTOM_RIGHT_CORNER, GTK_WIDGET(window_));
555 bottom_right->SetSource(cr, right_x - 1, bottom_y - 1); 559 bottom_right->SetSource(cr, GTK_WIDGET(window_), right_x - 1, bottom_y - 1);
556 cairo_paint(cr); 560 cairo_paint(cr);
557 561
558 // Finally, draw the bottom row. Since we don't overlap the contents, we clip 562 // Finally, draw the bottom row. Since we don't overlap the contents, we clip
559 // the top row of pixels. 563 // the top row of pixels.
560 CairoCachedSurface* bottom = theme_provider->GetSurfaceNamed( 564 gfx::CairoCachedSurface* bottom = theme_provider->GetSurfaceNamed(
561 IDR_CONTENT_BOTTOM_CENTER, GTK_WIDGET(window_)); 565 IDR_CONTENT_BOTTOM_CENTER, GTK_WIDGET(window_));
562 bottom->SetSource(cr, left_x + 1, bottom_y - 1); 566 bottom->SetSource(cr, GTK_WIDGET(window_), left_x + 1, bottom_y - 1);
563 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); 567 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
564 cairo_rectangle(cr, 568 cairo_rectangle(cr,
565 left_x + 1, 569 left_x + 1,
566 bottom_y, 570 bottom_y,
567 window_vbox_->allocation.width - 2, 571 window_vbox_->allocation.width - 2,
568 kContentShadowThickness); 572 kContentShadowThickness);
569 cairo_fill(cr); 573 cairo_fill(cr);
570 } 574 }
571 575
572 void BrowserWindowGtk::DrawPopupFrame(cairo_t* cr, 576 void BrowserWindowGtk::DrawPopupFrame(cairo_t* cr,
573 GtkWidget* widget, 577 GtkWidget* widget,
574 GdkEventExpose* event) { 578 GdkEventExpose* event) {
575 GtkThemeService* theme_provider = GtkThemeService::GetFrom( 579 GtkThemeService* theme_provider = GtkThemeService::GetFrom(
576 browser()->profile()); 580 browser()->profile());
577 581
578 // Like DrawCustomFrame(), except that we use the unthemed resources to draw 582 // Like DrawCustomFrame(), except that we use the unthemed resources to draw
579 // the background. We do this because we can't rely on sane images in the 583 // the background. We do this because we can't rely on sane images in the
580 // theme that we can draw text on. (We tried using the tab background, but 584 // theme that we can draw text on. (We tried using the tab background, but
581 // that has inverse saturation from what the user usually expects). 585 // that has inverse saturation from what the user usually expects).
582 int image_name = GetThemeFrameResource(); 586 int image_name = GetThemeFrameResource();
583 CairoCachedSurface* surface = theme_provider->GetUnthemedSurfaceNamed( 587 gfx::CairoCachedSurface* surface = theme_provider->GetUnthemedSurfaceNamed(
584 image_name, widget); 588 image_name, widget);
585 surface->SetSource(cr, 0, GetVerticalOffset()); 589 surface->SetSource(cr, widget, 0, GetVerticalOffset());
586 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REFLECT); 590 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REFLECT);
587 cairo_rectangle(cr, event->area.x, event->area.y, 591 cairo_rectangle(cr, event->area.x, event->area.y,
588 event->area.width, event->area.height); 592 event->area.width, event->area.height);
589 cairo_fill(cr); 593 cairo_fill(cr);
590 } 594 }
591 595
592 void BrowserWindowGtk::DrawCustomFrame(cairo_t* cr, 596 void BrowserWindowGtk::DrawCustomFrame(cairo_t* cr,
593 GtkWidget* widget, 597 GtkWidget* widget,
594 GdkEventExpose* event) { 598 GdkEventExpose* event) {
595 GtkThemeService* theme_provider = GtkThemeService::GetFrom( 599 GtkThemeService* theme_provider = GtkThemeService::GetFrom(
596 browser()->profile()); 600 browser()->profile());
597 601
598 int image_name = GetThemeFrameResource(); 602 int image_name = GetThemeFrameResource();
599 603
600 CairoCachedSurface* surface = theme_provider->GetSurfaceNamed( 604 gfx::CairoCachedSurface* surface = theme_provider->GetSurfaceNamed(
601 image_name, widget); 605 image_name, widget);
602 if (event->area.y < surface->Height()) { 606 if (event->area.y < surface->Height()) {
603 surface->SetSource(cr, 0, GetVerticalOffset()); 607 surface->SetSource(cr, widget, 0, GetVerticalOffset());
604 608
605 // The frame background isn't tiled vertically. 609 // The frame background isn't tiled vertically.
606 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT); 610 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
607 cairo_rectangle(cr, event->area.x, event->area.y, 611 cairo_rectangle(cr, event->area.x, event->area.y,
608 event->area.width, surface->Height() - event->area.y); 612 event->area.width, surface->Height() - event->area.y);
609 cairo_fill(cr); 613 cairo_fill(cr);
610 } 614 }
611 615
612 if (theme_provider->HasCustomImage(IDR_THEME_FRAME_OVERLAY) && 616 if (theme_provider->HasCustomImage(IDR_THEME_FRAME_OVERLAY) &&
613 !browser()->profile()->IsOffTheRecord()) { 617 !browser()->profile()->IsOffTheRecord()) {
614 CairoCachedSurface* theme_overlay = theme_provider->GetSurfaceNamed( 618 gfx::CairoCachedSurface* theme_overlay = theme_provider->GetSurfaceNamed(
615 IsActive() ? IDR_THEME_FRAME_OVERLAY 619 IsActive() ? IDR_THEME_FRAME_OVERLAY
616 : IDR_THEME_FRAME_OVERLAY_INACTIVE, widget); 620 : IDR_THEME_FRAME_OVERLAY_INACTIVE, widget);
617 theme_overlay->SetSource(cr, 0, GetVerticalOffset()); 621 theme_overlay->SetSource(cr, widget, 0, GetVerticalOffset());
618 cairo_paint(cr); 622 cairo_paint(cr);
619 } 623 }
620 } 624 }
621 625
622 int BrowserWindowGtk::GetVerticalOffset() { 626 int BrowserWindowGtk::GetVerticalOffset() {
623 return (IsMaximized() || (!UseCustomFrame())) ? 627 return (IsMaximized() || (!UseCustomFrame())) ?
624 -kCustomFrameBackgroundVerticalOffset : 0; 628 -kCustomFrameBackgroundVerticalOffset : 0;
625 } 629 }
626 630
627 int BrowserWindowGtk::GetThemeFrameResource() { 631 int BrowserWindowGtk::GetThemeFrameResource() {
(...skipping 1800 matching lines...) Expand 10 before | Expand all | Expand 10 after
2428 wm_type == ui::WM_OPENBOX || 2432 wm_type == ui::WM_OPENBOX ||
2429 wm_type == ui::WM_XFWM4); 2433 wm_type == ui::WM_XFWM4);
2430 } 2434 }
2431 2435
2432 // static 2436 // static
2433 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { 2437 BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) {
2434 BrowserWindowGtk* browser_window_gtk = new BrowserWindowGtk(browser); 2438 BrowserWindowGtk* browser_window_gtk = new BrowserWindowGtk(browser);
2435 browser_window_gtk->Init(); 2439 browser_window_gtk->Init();
2436 return browser_window_gtk; 2440 return browser_window_gtk;
2437 } 2441 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698