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

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

Issue 179028: Revert "Fix a ton of compiler warnings." (Closed)
Patch Set: Created 11 years, 3 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
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.cc ('k') | chrome/browser/gtk/constrained_window_gtk.h » ('j') | 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/gtk/browser_window_gtk.h" 5 #include "chrome/browser/gtk/browser_window_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 #include <X11/XF86keysym.h> 8 #include <X11/XF86keysym.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 DrawContentShadow(cr, window); 596 DrawContentShadow(cr, window);
597 597
598 cairo_destroy(cr); 598 cairo_destroy(cr);
599 599
600 if (window->UseCustomFrame() && !window->IsMaximized()) { 600 if (window->UseCustomFrame() && !window->IsMaximized()) {
601 static NineBox custom_frame_border( 601 static NineBox custom_frame_border(
602 IDR_WINDOW_TOP_LEFT_CORNER, 602 IDR_WINDOW_TOP_LEFT_CORNER,
603 IDR_WINDOW_TOP_CENTER, 603 IDR_WINDOW_TOP_CENTER,
604 IDR_WINDOW_TOP_RIGHT_CORNER, 604 IDR_WINDOW_TOP_RIGHT_CORNER,
605 IDR_WINDOW_LEFT_SIDE, 605 IDR_WINDOW_LEFT_SIDE,
606 0, 606 NULL,
607 IDR_WINDOW_RIGHT_SIDE, 607 IDR_WINDOW_RIGHT_SIDE,
608 IDR_WINDOW_BOTTOM_LEFT_CORNER, 608 IDR_WINDOW_BOTTOM_LEFT_CORNER,
609 IDR_WINDOW_BOTTOM_CENTER, 609 IDR_WINDOW_BOTTOM_CENTER,
610 IDR_WINDOW_BOTTOM_RIGHT_CORNER); 610 IDR_WINDOW_BOTTOM_RIGHT_CORNER);
611 611
612 custom_frame_border.RenderToWidget(widget); 612 custom_frame_border.RenderToWidget(widget);
613 } 613 }
614 614
615 return FALSE; // Allow subwidgets to paint. 615 return FALSE; // Allow subwidgets to paint.
616 } 616 }
(...skipping 1201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1818 } 1818 }
1819 1819
1820 // Handle left, middle and right clicks. In particular, we care about clicks 1820 // Handle left, middle and right clicks. In particular, we care about clicks
1821 // in the custom frame border and clicks in the titlebar. 1821 // in the custom frame border and clicks in the titlebar.
1822 1822
1823 // Make the button press coordinate relative to the browser window. 1823 // Make the button press coordinate relative to the browser window.
1824 int win_x, win_y; 1824 int win_x, win_y;
1825 gdk_window_get_origin(GTK_WIDGET(browser->window_)->window, &win_x, &win_y); 1825 gdk_window_get_origin(GTK_WIDGET(browser->window_)->window, &win_x, &win_y);
1826 1826
1827 GdkWindowEdge edge; 1827 GdkWindowEdge edge;
1828 gfx::Point point(static_cast<int>(event->x_root - win_x), 1828 gfx::Point point(event->x_root - win_x, event->y_root - win_y);
1829 static_cast<int>( event->y_root - win_y));
1830 bool has_hit_edge = browser->GetWindowEdge(point.x(), point.y(), &edge); 1829 bool has_hit_edge = browser->GetWindowEdge(point.x(), point.y(), &edge);
1831 1830
1832 // Ignore clicks that are in/below the browser toolbar. 1831 // Ignore clicks that are in/below the browser toolbar.
1833 GtkWidget* toolbar = browser->toolbar_->widget(); 1832 GtkWidget* toolbar = browser->toolbar_->widget();
1834 if (!GTK_WIDGET_VISIBLE(toolbar)) { 1833 if (!GTK_WIDGET_VISIBLE(toolbar)) {
1835 // If the toolbar is not showing, use the location of web contents as the 1834 // If the toolbar is not showing, use the location of web contents as the
1836 // boundary of where to ignore clicks. 1835 // boundary of where to ignore clicks.
1837 toolbar = browser->render_area_vbox_; 1836 toolbar = browser->render_area_vbox_;
1838 } 1837 }
1839 gint toolbar_y; 1838 gint toolbar_y;
1840 gtk_widget_get_pointer(toolbar, NULL, &toolbar_y); 1839 gtk_widget_get_pointer(toolbar, NULL, &toolbar_y);
1841 bool has_hit_titlebar = !browser->IsFullscreen() && (toolbar_y < 0) 1840 bool has_hit_titlebar = !browser->IsFullscreen() && (toolbar_y < 0)
1842 && !has_hit_edge; 1841 && !has_hit_edge;
1843 if (event->button == 1) { 1842 if (event->button == 1) {
1844 if (GDK_BUTTON_PRESS == event->type) { 1843 if (GDK_BUTTON_PRESS == event->type) {
1845 guint32 last_click_time = browser->last_click_time_; 1844 guint32 last_click_time = browser->last_click_time_;
1846 gfx::Point last_click_position = browser->last_click_position_; 1845 gfx::Point last_click_position = browser->last_click_position_;
1847 browser->last_click_time_ = event->time; 1846 browser->last_click_time_ = event->time;
1848 browser->last_click_position_ = gfx::Point(static_cast<int>(event->x), 1847 browser->last_click_position_ = gfx::Point(event->x, event->y);
1849 static_cast<int>(event->y));
1850 1848
1851 if (has_hit_titlebar) { 1849 if (has_hit_titlebar) {
1852 // We want to start a move when the user single clicks, but not start a 1850 // We want to start a move when the user single clicks, but not start a
1853 // move when the user double clicks. However, a double click sends the 1851 // move when the user double clicks. However, a double click sends the
1854 // following GDK events: GDK_BUTTON_PRESS, GDK_BUTTON_RELEASE, 1852 // following GDK events: GDK_BUTTON_PRESS, GDK_BUTTON_RELEASE,
1855 // GDK_BUTTON_PRESS, GDK_2BUTTON_PRESS, GDK_BUTTON_RELEASE. If we 1853 // GDK_BUTTON_PRESS, GDK_2BUTTON_PRESS, GDK_BUTTON_RELEASE. If we
1856 // start a gtk_window_begin_move_drag on the second GDK_BUTTON_PRESS, 1854 // start a gtk_window_begin_move_drag on the second GDK_BUTTON_PRESS,
1857 // the call to gtk_window_maximize fails. To work around this, we 1855 // the call to gtk_window_maximize fails. To work around this, we
1858 // keep track of the last click and if it's going to be a double click, 1856 // keep track of the last click and if it's going to be a double click,
1859 // we don't call gtk_window_begin_move_drag. 1857 // we don't call gtk_window_begin_move_drag.
1860 static GtkSettings* settings = gtk_settings_get_default(); 1858 static GtkSettings* settings = gtk_settings_get_default();
1861 gint double_click_time = 250; 1859 gint double_click_time = 250;
1862 gint double_click_distance = 5; 1860 gint double_click_distance = 5;
1863 g_object_get(G_OBJECT(settings), 1861 g_object_get(G_OBJECT(settings),
1864 "gtk-double-click-time", &double_click_time, 1862 "gtk-double-click-time", &double_click_time,
1865 "gtk-double-click-distance", &double_click_distance, 1863 "gtk-double-click-distance", &double_click_distance,
1866 NULL); 1864 NULL);
1867 1865
1868 guint32 click_time = event->time - last_click_time; 1866 guint32 click_time = event->time - last_click_time;
1869 int click_move_x = static_cast<int>(event->x - last_click_position.x()); 1867 int click_move_x = event->x - last_click_position.x();
1870 int click_move_y = static_cast<int>(event->y - last_click_position.y()); 1868 int click_move_y = event->y - last_click_position.y();
1871 1869
1872 if (click_time > static_cast<guint32>(double_click_time) || 1870 if (click_time > static_cast<guint32>(double_click_time) ||
1873 click_move_x > double_click_distance || 1871 click_move_x > double_click_distance ||
1874 click_move_y > double_click_distance) { 1872 click_move_y > double_click_distance) {
1875 gtk_window_begin_move_drag(browser->window_, event->button, 1873 gtk_window_begin_move_drag(browser->window_, event->button,
1876 static_cast<gint>(event->x_root), 1874 event->x_root, event->y_root, event->time);
1877 static_cast<gint>(event->y_root),
1878 event->time);
1879 return TRUE; 1875 return TRUE;
1880 } 1876 }
1881 } else if (has_hit_edge) { 1877 } else if (has_hit_edge) {
1882 gtk_window_begin_resize_drag(browser->window_, edge, event->button, 1878 gtk_window_begin_resize_drag(browser->window_, edge, event->button,
1883 static_cast<gint>(event->x_root), 1879 event->x_root, event->y_root, event->time);
1884 static_cast<gint>(event->y_root),
1885 event->time);
1886 return TRUE; 1880 return TRUE;
1887 } 1881 }
1888 } else if (GDK_2BUTTON_PRESS == event->type) { 1882 } else if (GDK_2BUTTON_PRESS == event->type) {
1889 if (has_hit_titlebar) { 1883 if (has_hit_titlebar) {
1890 // Maximize/restore on double click. 1884 // Maximize/restore on double click.
1891 if (browser->IsMaximized()) { 1885 if (browser->IsMaximized()) {
1892 gtk_window_unmaximize(browser->window_); 1886 gtk_window_unmaximize(browser->window_);
1893 } else { 1887 } else {
1894 gtk_window_maximize(browser->window_); 1888 gtk_window_maximize(browser->window_);
1895 } 1889 }
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
2090 // special-case the ones where the custom frame should be used. These names 2084 // special-case the ones where the custom frame should be used. These names
2091 // are taken from the WMs' source code. 2085 // are taken from the WMs' source code.
2092 return (wm_name == "Blackbox" || 2086 return (wm_name == "Blackbox" ||
2093 wm_name == "compiz" || 2087 wm_name == "compiz" ||
2094 wm_name == "e16" || // Enlightenment DR16 2088 wm_name == "e16" || // Enlightenment DR16
2095 wm_name == "KWin" || 2089 wm_name == "KWin" ||
2096 wm_name == "Metacity" || 2090 wm_name == "Metacity" ||
2097 wm_name == "Openbox" || 2091 wm_name == "Openbox" ||
2098 wm_name == "Xfwm4"); 2092 wm_name == "Xfwm4");
2099 } 2093 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.cc ('k') | chrome/browser/gtk/constrained_window_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698