summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-22 03:34:50 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-22 03:34:50 +0000
commitdf8e4954b1cc331887030c70474eecf21f01b81f (patch)
tree3e7a3c73e49b9c5cb62d860bdddc02b96a3c0bd4
parenta47aa89e77066507e80f97839e0c08e3432379ab (diff)
downloadchromium_src-df8e4954b1cc331887030c70474eecf21f01b81f.zip
chromium_src-df8e4954b1cc331887030c70474eecf21f01b81f.tar.gz
chromium_src-df8e4954b1cc331887030c70474eecf21f01b81f.tar.bz2
GTK: Part 1 of removing GtkWidget->window to close up GSEALs.
(The accessor gtk_widget_get_window was added in 2.14, so it was never used in initial linux port development.) BUG=79722 TEST=none Review URL: http://codereview.chromium.org/8625001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111091 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/automation/automation_provider_gtk.cc2
-rw-r--r--chrome/browser/automation/ui_controls_gtk.cc10
-rw-r--r--chrome/browser/tab_contents/tab_contents_view_gtk.cc18
-rw-r--r--chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc6
-rw-r--r--chrome/browser/ui/gtk/browser_titlebar.cc6
-rw-r--r--chrome/browser/ui/gtk/browser_window_gtk.cc42
6 files changed, 49 insertions, 35 deletions
diff --git a/chrome/browser/automation/automation_provider_gtk.cc b/chrome/browser/automation/automation_provider_gtk.cc
index 0dfec43..60396a3 100644
--- a/chrome/browser/automation/automation_provider_gtk.cc
+++ b/chrome/browser/automation/automation_provider_gtk.cc
@@ -48,7 +48,7 @@ void AutomationProvider::WindowSimulateDrag(
browser_tracker_->GetResource(handle)->window()->GetNativeHandle();
if (window && (drag_path.size() > 1)) {
int x, y;
- gdk_window_get_position(GTK_WIDGET(window)->window, &x, &y);
+ gdk_window_get_position(gtk_widget_get_window(GTK_WIDGET(window)), &x, &y);
// Create a nested stack of tasks to run.
base::Closure drag_response_cb = base::Bind(
diff --git a/chrome/browser/automation/ui_controls_gtk.cc b/chrome/browser/automation/ui_controls_gtk.cc
index f72d9da..3c7e601a 100644
--- a/chrome/browser/automation/ui_controls_gtk.cc
+++ b/chrome/browser/automation/ui_controls_gtk.cc
@@ -88,7 +88,7 @@ void FakeAMouseMotionEvent(gint x, gint y) {
if (grab_widget) {
// If there is a grab, we need to target all events at it regardless of
// what widget the mouse is over.
- event->motion.window = grab_widget->window;
+ event->motion.window = gtk_widget_get_window(grab_widget);
} else {
event->motion.window = gdk_window_at_pointer(&x, &y);
}
@@ -122,16 +122,16 @@ bool SendKeyPress(gfx::NativeWindow window,
GtkWidget* grab_widget = gtk_grab_get_current();
if (grab_widget) {
// If there is a grab, send all events to the grabbed widget.
- event_window = grab_widget->window;
+ event_window = gtk_widget_get_window(grab_widget);
} else if (window) {
- event_window = GTK_WIDGET(window)->window;
+ event_window = gtk_widget_get_window(GTK_WIDGET(window));
} else {
// No target was specified. Send the events to the active toplevel.
GList* windows = gtk_window_list_toplevels();
for (GList* element = windows; element; element = g_list_next(element)) {
GtkWindow* this_window = GTK_WINDOW(element->data);
if (gtk_window_is_active(this_window)) {
- event_window = GTK_WIDGET(this_window)->window;
+ event_window = gtk_widget_get_window(GTK_WIDGET(this_window));
break;
}
}
@@ -201,7 +201,7 @@ bool SendMouseEvents(MouseButton type, int state) {
if (grab_widget) {
// If there is a grab, we need to target all events at it regardless of
// what widget the mouse is over.
- event->button.window = grab_widget->window;
+ event->button.window = gtk_widget_get_window(grab_widget);
gdk_window_get_pointer(event->button.window, &x, &y, NULL);
} else {
event->button.window = gdk_window_at_pointer(&x, &y);
diff --git a/chrome/browser/tab_contents/tab_contents_view_gtk.cc b/chrome/browser/tab_contents/tab_contents_view_gtk.cc
index d4a1321..d01cee4 100644
--- a/chrome/browser/tab_contents/tab_contents_view_gtk.cc
+++ b/chrome/browser/tab_contents/tab_contents_view_gtk.cc
@@ -162,8 +162,9 @@ void TabContentsViewGtk::GetContainerBounds(gfx::Rect* out) const {
// animation.
int x = 0;
int y = 0;
- if (expanded_->window)
- gdk_window_get_origin(expanded_->window, &x, &y);
+ GdkWindow* expanded_window = gtk_widget_get_window(expanded_.get());
+ if (expanded_window)
+ gdk_window_get_origin(expanded_window, &x, &y);
out->SetRect(x + expanded_->allocation.x, y + expanded_->allocation.y,
requested_size_.width(), requested_size_.height());
}
@@ -172,8 +173,12 @@ void TabContentsViewGtk::SetPageTitle(const string16& title) {
// Set the window name to include the page title so it's easier to spot
// when debugging (e.g. via xwininfo -tree).
gfx::NativeView content_view = GetContentNativeView();
- if (content_view && content_view->window)
- gdk_window_set_title(content_view->window, UTF16ToUTF8(title).c_str());
+ if (content_view) {
+ GdkWindow* content_window = gtk_widget_get_window(content_view);
+ if (content_window) {
+ gdk_window_set_title(content_window, UTF16ToUTF8(title).c_str());
+ }
+ }
}
void TabContentsViewGtk::OnTabCrashed(base::TerminationStatus status,
@@ -234,12 +239,13 @@ void TabContentsViewGtk::CloseTabAfterEventTracking() {
}
void TabContentsViewGtk::GetViewBounds(gfx::Rect* out) const {
- if (!GetNativeView()->window) {
+ GdkWindow* window = gtk_widget_get_window(GetNativeView());
+ if (!window) {
out->SetRect(0, 0, requested_size_.width(), requested_size_.height());
return;
}
int x = 0, y = 0, w, h;
- gdk_window_get_geometry(GetNativeView()->window, &x, &y, &w, &h, NULL);
+ gdk_window_get_geometry(window, &x, &y, &w, &h, NULL);
out->SetRect(x, y, w, h);
}
diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
index 7919aca..97af9e4 100644
--- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc
@@ -851,7 +851,7 @@ gboolean BrowserActionsToolbarGtk::OnGripperExpose(GtkWidget* gripper,
// dragging.
gboolean BrowserActionsToolbarGtk::OnGripperEnterNotify(
GtkWidget* gripper, GdkEventCrossing* event) {
- gdk_window_set_cursor(gripper->window,
+ gdk_window_set_cursor(gtk_widget_get_window(gripper),
gfx::GetCursor(GDK_SB_H_DOUBLE_ARROW));
return FALSE;
}
@@ -859,7 +859,7 @@ gboolean BrowserActionsToolbarGtk::OnGripperEnterNotify(
gboolean BrowserActionsToolbarGtk::OnGripperLeaveNotify(
GtkWidget* gripper, GdkEventCrossing* event) {
if (!(event->state & GDK_BUTTON1_MASK))
- gdk_window_set_cursor(gripper->window, NULL);
+ gdk_window_set_cursor(gtk_widget_get_window(gripper), NULL);
return FALSE;
}
@@ -869,7 +869,7 @@ gboolean BrowserActionsToolbarGtk::OnGripperButtonRelease(
gripper->allocation.width, gripper->allocation.height);
gfx::Point release_point(event->x, event->y);
if (!gripper_rect.Contains(release_point))
- gdk_window_set_cursor(gripper->window, NULL);
+ gdk_window_set_cursor(gtk_widget_get_window(gripper), NULL);
// After the user resizes the toolbar, we want to smartly resize it to be
// the perfect size to fit the buttons.
diff --git a/chrome/browser/ui/gtk/browser_titlebar.cc b/chrome/browser/ui/gtk/browser_titlebar.cc
index b15cd62..033df67 100644
--- a/chrome/browser/ui/gtk/browser_titlebar.cc
+++ b/chrome/browser/ui/gtk/browser_titlebar.cc
@@ -836,7 +836,8 @@ void BrowserTitlebar::MaximizeButtonClicked() {
} else {
GtkWidget* widget = GTK_WIDGET(window_);
GdkScreen* screen = gtk_widget_get_screen(widget);
- gint monitor = gdk_screen_get_monitor_at_window(screen, widget->window);
+ gint monitor = gdk_screen_get_monitor_at_window(
+ screen, gtk_widget_get_window(widget));
GdkRectangle screen_rect;
gdk_screen_get_monitor_geometry(screen, monitor, &screen_rect);
@@ -1042,7 +1043,8 @@ void BrowserTitlebar::ActiveWindowChanged(GdkWindow* active_window) {
if (!window_)
return;
- window_has_focus_ = GTK_WIDGET(window_)->window == active_window;
+ window_has_focus_ =
+ gtk_widget_get_window(GTK_WIDGET(window_)) == active_window;
if (IsTypePanel()) {
if (window_has_focus_ || window_has_mouse_)
gtk_widget_show(panel_wrench_button_->widget());
diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
index de718b9..5c05e0f 100644
--- a/chrome/browser/ui/gtk/browser_window_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
@@ -257,8 +257,9 @@ void SetWindowSize(GtkWindow* window, const gfx::Size& size) {
gint current_height = 0;
gtk_window_get_size(window, &current_width, &current_height);
GdkRectangle size_with_decorations = {0};
- if (GTK_WIDGET(window)->window) {
- gdk_window_get_frame_extents(GTK_WIDGET(window)->window,
+ GdkWindow* gdk_window = gtk_widget_get_window(GTK_WIDGET(window));
+ if (gdk_window) {
+ gdk_window_get_frame_extents(gdk_window,
&size_with_decorations);
}
@@ -743,7 +744,7 @@ void BrowserWindowGtk::Activate() {
}
void BrowserWindowGtk::Deactivate() {
- gdk_window_lower(GTK_WIDGET(window_)->window);
+ gdk_window_lower(gtk_widget_get_window(GTK_WIDGET(window_)));
}
bool BrowserWindowGtk::IsActive() const {
@@ -1276,7 +1277,7 @@ void BrowserWindowGtk::ActiveWindowChanged(GdkWindow* active_window) {
if (!window_)
return;
- bool is_active = (GTK_WIDGET(window_)->window == active_window);
+ bool is_active = gtk_widget_get_window(GTK_WIDGET(window_)) == active_window;
bool changed = (is_active != is_active_);
if (is_active && changed) {
@@ -1572,7 +1573,7 @@ void BrowserWindowGtk::ResetCustomFrameCursor() {
return;
frame_cursor_ = NULL;
- gdk_window_set_cursor(GTK_WIDGET(window_)->window, NULL);
+ gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window_)), NULL);
}
// static
@@ -1788,7 +1789,7 @@ void BrowserWindowGtk::InitWidgets() {
// We have to realize the window before we try to apply a window shape mask.
gtk_widget_realize(GTK_WIDGET(window_));
- state_ = gdk_window_get_state(GTK_WIDGET(window_)->window);
+ state_ = gdk_window_get_state(gtk_widget_get_window(GTK_WIDGET(window_)));
// Note that calling this the first time is necessary to get the
// proper control layout.
UpdateCustomFrame();
@@ -1867,7 +1868,8 @@ void BrowserWindowGtk::UpdateWindowShape(int width, int height) {
gdk_region_union_with_rect(mask, &mid_rect);
gdk_region_union_with_rect(mask, &bot_mid_rect);
gdk_region_union_with_rect(mask, &bot_bot_rect);
- gdk_window_shape_combine_region(GTK_WIDGET(window_)->window, mask, 0, 0);
+ gdk_window_shape_combine_region(gtk_widget_get_window(GTK_WIDGET(window_)),
+ mask, 0, 0);
gdk_region_destroy(mask);
gtk_alignment_set_padding(GTK_ALIGNMENT(window_container_), 1,
kFrameBorderThickness, kFrameBorderThickness, kFrameBorderThickness);
@@ -1878,10 +1880,12 @@ void BrowserWindowGtk::UpdateWindowShape(int width, int height) {
// seem to work on KWin, so manually set the shape to the whole window.
GdkRectangle rect = { 0, 0, width, height };
GdkRegion* mask = gdk_region_rectangle(&rect);
- gdk_window_shape_combine_region(GTK_WIDGET(window_)->window, mask, 0, 0);
+ gdk_window_shape_combine_region(
+ gtk_widget_get_window(GTK_WIDGET(window_)), mask, 0, 0);
gdk_region_destroy(mask);
} else {
- gdk_window_shape_combine_region(GTK_WIDGET(window_)->window, NULL, 0, 0);
+ gdk_window_shape_combine_region(
+ gtk_widget_get_window(GTK_WIDGET(window_)), NULL, 0, 0);
}
gtk_alignment_set_padding(GTK_ALIGNMENT(window_container_), 0, 0, 0, 0);
}
@@ -1918,7 +1922,7 @@ gfx::Size BrowserWindowGtk::GetNonClientFrameSize() const {
}
void BrowserWindowGtk::InvalidateWindow() {
- gdk_window_invalidate_rect(GTK_WIDGET(window_)->window,
+ gdk_window_invalidate_rect(gtk_widget_get_window(GTK_WIDGET(window_)),
&GTK_WIDGET(window_)->allocation, TRUE);
}
@@ -2073,11 +2077,11 @@ gboolean BrowserWindowGtk::OnMouseMoveEvent(GtkWidget* widget,
// This method is used to update the mouse cursor when over the edge of the
// custom frame. If the custom frame is off or we're over some other widget,
// do nothing.
- if (!UseCustomFrame() || event->window != widget->window) {
+ if (!UseCustomFrame() || event->window != gtk_widget_get_window(widget)) {
// Reset the cursor.
if (frame_cursor_) {
frame_cursor_ = NULL;
- gdk_window_set_cursor(GTK_WIDGET(window_)->window, NULL);
+ gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window_)), NULL);
}
return FALSE;
}
@@ -2100,7 +2104,8 @@ gboolean BrowserWindowGtk::OnMouseMoveEvent(GtkWidget* widget,
} else {
frame_cursor_ = NULL;
}
- gdk_window_set_cursor(GTK_WIDGET(window_)->window, frame_cursor_);
+ gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(window_)),
+ frame_cursor_);
}
return FALSE;
}
@@ -2123,7 +2128,8 @@ gboolean BrowserWindowGtk::OnButtonPressEvent(GtkWidget* widget,
// Make the button press coordinate relative to the browser window.
int win_x, win_y;
- gdk_window_get_origin(GTK_WIDGET(window_)->window, &win_x, &win_y);
+ GdkWindow* gdk_window = gtk_widget_get_window(GTK_WIDGET(window_));
+ gdk_window_get_origin(gdk_window, &win_x, &win_y);
GdkWindowEdge edge;
gfx::Point point(static_cast<int>(event->x_root - win_x),
@@ -2153,7 +2159,7 @@ gboolean BrowserWindowGtk::OnButtonPressEvent(GtkWidget* widget,
// match the behavior of most window managers, unless that behavior has
// been suppressed.
if ((has_hit_titlebar || has_hit_edge) && !suppress_window_raise_)
- gdk_window_raise(GTK_WIDGET(window_)->window);
+ gdk_window_raise(gdk_window);
if (has_hit_titlebar) {
return HandleTitleBarLeftMousePress(
@@ -2178,7 +2184,7 @@ gboolean BrowserWindowGtk::OnButtonPressEvent(GtkWidget* widget,
}
} else if (event->button == 2) {
if (has_hit_titlebar || has_hit_edge) {
- gdk_window_lower(GTK_WIDGET(window_)->window);
+ gdk_window_lower(gdk_window);
}
return TRUE;
} else if (event->button == 3) {
@@ -2256,7 +2262,7 @@ void BrowserWindowGtk::ShowSupportedWindowFeatures() {
if (IsToolbarSupported()) {
toolbar_->Show();
gtk_widget_show(toolbar_border_);
- gdk_window_lower(toolbar_border_->window);
+ gdk_window_lower(gtk_widget_get_window(toolbar_border_));
}
if (IsBookmarkBarSupported())
@@ -2359,7 +2365,7 @@ bool BrowserWindowGtk::BoundsMatchMonitorSize() {
// A screen can be composed of multiple monitors.
GdkScreen* screen = gtk_window_get_screen(window_);
gint monitor_num = gdk_screen_get_monitor_at_window(screen,
- GTK_WIDGET(window_)->window);
+ gtk_widget_get_window(GTK_WIDGET(window_)));
GdkRectangle monitor_size;
gdk_screen_get_monitor_geometry(screen, monitor_num, &monitor_size);