diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-22 03:34:50 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-22 03:34:50 +0000 |
commit | df8e4954b1cc331887030c70474eecf21f01b81f (patch) | |
tree | 3e7a3c73e49b9c5cb62d860bdddc02b96a3c0bd4 | |
parent | a47aa89e77066507e80f97839e0c08e3432379ab (diff) | |
download | chromium_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.cc | 2 | ||||
-rw-r--r-- | chrome/browser/automation/ui_controls_gtk.cc | 10 | ||||
-rw-r--r-- | chrome/browser/tab_contents/tab_contents_view_gtk.cc | 18 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc | 6 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/browser_titlebar.cc | 6 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/browser_window_gtk.cc | 42 |
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, ¤t_width, ¤t_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_)), >K_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); |